【问题标题】:Razor variable into Javascript将 Razor 变量转换为 Javascript
【发布时间】:2017-12-30 07:37:28
【问题描述】:

我正在尝试使用 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>

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

public string testVariable { get; set; }

在控制器中,我将变量设置为:

model.testVariable = "x";

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

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

【问题讨论】:

    标签: javascript asp.net razor


    【解决方案1】:

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

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

    【讨论】:

    • 是的,否则 JavaScript 会将值解释为变量并尝试访问标识符等于 @Model.testVariable 值的变量,这(在大多数情况下)将是未定义的。跨度>
    • @mhodges 或者如果字符串包含空格或任何其他可以解释为代码的语法错误,这实际上是非常危险的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多