0

我正在尝试在 Razor (MVC4) 中编写以下 javascript。

(脚本标签在那里)

 var isPaid = true;

在视图中我使用模型来获取值:

 var isPaid = @Model.Paid;

 <text>
    var proceed = @Model.Paid;
 </text> 

 var proceed = @Html.Raw(Model.Paid + ";")

大多数时候 Resharper 抱怨

4

2 回答 2

1

您不能在 HTML 代码中组合 JavaScript,您需要在值周围加上引号和尖括号,以便将其视为字符串。

问题似乎是这个以及更多..:

var isPaid = @Model.Paid;

 <text>
    var proceed = @Model.Paid;
 </text> 

建议的解决方案是:

普通的 JavaScript 代码应该位于script标签内,例如:

<script type="text/javascript">
 var isPaid = '<%: @Model.Paid %>';
</script>
于 2013-11-14T21:19:02.247 回答
1

你可以这样尝试:

<script type="text/javascript">
    var isPaid = false; // This is JavaScript.

    // The if statement is C#, hence the @.
    @if (Model.Paid)
    {
        @:isPaid = true;  // Set the JS variable to true.
    }

    // Below is JavaScript code again.
    alert(isPaid);
</script>

块后的文本@:将被解释为 JavaScript。布尔值有点麻烦,string例如属性要容易得多:

<script type="text/javascript">
    var userName = '@Model.UserName';
</script>
于 2013-11-14T22:23:48.067 回答