将 Razor 变量转换为 Javascript

Gre*_*nne 4 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.testVariable);
</script>
Run Code Online (Sandbox Code Playgroud)

在模型中,测试变量的定义如下

public string testVariable { get; set; }
Run Code Online (Sandbox Code Playgroud)

在控制器中,我设置的变量如下:

model.testVariable = "x";
Run Code Online (Sandbox Code Playgroud)

然后当我访问变量时,我几乎总是得到错误test1 is undefined。如果我将变量设置为var test1 = 'x',那么它工作正常。只有当我从模型中获取变量时才会出现问题

$(document).ready(function () {
   alert(test1);
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*idG 8

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

<script>
   var test1 = '@Model.testVariable';
</script>
Run Code Online (Sandbox Code Playgroud)