如何将值从javascript变量传递到razor变量,asp.net mvc razor视图引擎是否可能?
@{ int a = 0; } <script> var b = ... @a = b; </script>
你不能 原因是他们不在同一时间“生活”。Razor变量是“服务器端变量”,在将页面发送到“客户端”后,它们不再存在。
当服务器收到视图请求时,它仅使用HTML,CSS和Javascript代码创建视图。没有C#代码,所有这些都被“翻译”为客户端语言。
当视图仍在服务器上时,存在Java脚本代码DO,但它毫无意义,只能由浏览器执行(再次由客户端执行)。
这就是为什么您可以使用Razor变量来更改HTML和Javascript而不是相反的原因。尝试查看您的页面源代码(在大多数浏览器中为CTRL + U),那里没有C#代码的迹象。
简而言之:
服务器收到请求。
服务器创建视图,将视图中嵌入的所有C#代码转换为CSS,Javascript和HTML。
服务器将视图的客户端版本返回给浏览器,作为对请求的响应。