36 javascript c# razor
如何将值从javascript变量传递给razor变量,是否可能是asp.net mvc razor视图引擎?
@{
int a = 0;
}
<script>
var b = ...
@a = b;
</script>
Run Code Online (Sandbox Code Playgroud)
小智 55
你不能.原因是他们不是在同一时间"活着".Razor变量是"服务器端变量",在页面发送到"客户端"后它们不再存在.
当服务器获取视图请求时,它将仅使用HTML,CSS和Javascript代码创建视图.没有留下C#代码,它们都被"翻译"为客户端语言.
当视图仍然在服务器上时,Javascript代码DO存在,但它没有意义,只能由浏览器执行(客户端再次执行).
这就是为什么你可以使用Razor变量来改变HTML和Javascript但反之亦然.尝试查看您的页面源代码(大多数浏览器中的CTRL + U),那里没有C#代码的迹象.
简而言之:
服务器获取请求.
服务器创建"获取"视图,计算并转换嵌入在视图中的所有C#代码,CSS,Javascript和HTML.
Car*_*ors 38
但如果用一个代替@ html.Hidden字段中的变量,就有可能.如在这个例子中.
@Html.Hidden("myVar", 0);
Run Code Online (Sandbox Code Playgroud)
设置每个脚本的字段:
<script>
function setMyValue(value) {
$('#myVar').val(value);
}
</script>
Run Code Online (Sandbox Code Playgroud)
我希望我至少可以提供不小的解决方法.