如何将值从 javascript 变量传递给 razor 变量,是否可以使用 asp.net mvc razor View 引擎?
@{
int a = 0;
}
<script>
var b = ...
@a = b;
</script>
最佳答案
你不能。原因是他们不在同一时间“生活”。 Razor 变量是“服务器端变量”,在页面发送到“客户端”后它们不再存在。
当服务器收到 View 请求时,它会创建仅包含 HTML、CSS 和 Javascript 代码的 View 。没有留下任何 C# 代码,它都被“翻译”成客户端语言。
当 View 仍在服务器上时,Javascript 代码确实存在,但它没有意义,只会由浏览器执行(再次是客户端)。
这就是为什么您可以使用 Razor 变量来更改 HTML 和 Javascript,但反之则不行。尝试查看您的页面源代码(在大多数浏览器中为 CTRL+U),那里不会有 C# 代码的迹象。
简而言之:
服务器收到一个请求。
服务器创建或“获取” View ,然后计算 View 中嵌入的所有 C# 代码并将其转换为 CSS、Javascript 和 HTML。
服务器将 View 的客户端版本返回给浏览器作为对请求的响应。 (此时不再有 C#)
浏览器呈现页面并执行所有 Javascript
关于javascript - 如何将值从 javascript 变量传递给 razor 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28317182/