是什么导致这个mvc razor语法错误?

时间:2015-11-18 21:08:53

标签: asp.net-mvc razor

var openWos = @Model.MyMaintenanceDashboard.OpenWorkOrders;

为什么Visual Studio会说这是语法错误?它运行正常,但正确的语法是什么?

更新:OpenWos是一个javascript变量

3 个答案:

答案 0 :(得分:0)

如果您要设置C#var,正确的语法将在@前面没有Model,因为您已经在C#代码块中:

@{
    var openWos = Model.MyMaintenanceDashboard.OpenWorkOrders;
}

修改

您已经澄清这是一个JavaScript变量。根本不应该有语法错误,因为这是有效的Razor。引用Stephen建议的值与您最初发布的代码之间存在明显差异。引用时,JavaScript变量的类型是一个字符串而不是数字。

例如,将其包含在页面中:

<script>
    @{ int z = 10; }

    var x = @z;
    console.log(x);
    console.log(typeof x);

    var y = '@z';
    console.log(y);
    console.log(typeof y);
</script>

以下结果记录到控制台:

10
number
10
string

并且在任一实例中都没有使用变量@z报告语法错误。

答案 1 :(得分:0)

如果这是一个javascript代码,那么你需要引用它,这样你就不会得到&#39;语法&#39;错误。

var openWos = '@Model.MyMaintenanceDashboard.OpenWorkOrders';

答案 2 :(得分:0)

我发现您可以通过添加零来解决此问题:

var openWos = @Model.MyMaintenanceDashboard.OpenWorkOrders + 0;