Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将变量转换为Javascript_Javascript_Asp.net_Razor - Fatal编程技术网

将变量转换为Javascript

将变量转换为Javascript,javascript,asp.net,razor,Javascript,Asp.net,Razor,我试图使用Razor从模型变量设置JavaScript变量,但无法找出错误所在。 在CSHTML页面中,我尝试了以下方法: <script> var test1 = @Model.testVariable; var test2 = @(Model.testVariable); var test3 = <text>@Model.testVariable</text> var test4 = @Html.Raw(Model.testVari

我试图使用Razor从模型变量设置JavaScript变量,但无法找出错误所在。 在CSHTML页面中,我尝试了以下方法:

<script>
   var test1 = @Model.testVariable;
   var test2 = @(Model.testVariable);
   var test3 = <text>@Model.testVariable</text>
   var test4 = @Html.Raw(Model.testVariable);
</script>
在控制器中,我设置变量如下:

model.testVariable = "x";
然后当我访问变量时,我几乎总是得到错误
test1是未定义的
。如果我将变量设置为
var test1='x'
,那么它可以正常工作。只有当我从模型中获取变量时,它才会出现问题

$(document).ready(function () {
   alert(test1);
}

如果需要将变量设置为字符串文字,则需要将其括在引号中。例如:

<script>
   var test1 = '@Model.testVariable';
</script>

var test1='@Model.testVariable';

是,因为否则JavaScript会将该值解释为变量,并尝试使用与
@Model.testVariable
的值相等的标识符访问该变量,而该值(在大多数情况下)将是未定义的。@mhodges或语法错误,如果字符串包含空格或任何其他可以解释为代码的内容,这实际上相当危险。
<script>
   var test1 = '@Model.testVariable';
</script>