ASP.NET MVC4,Javascript中的Razor:页面运行但VS2012中的语法错误

时间:2013-06-27 10:06:23

标签: javascript asp.net-mvc-4 razor syntax-error syntax-highlighting

我有一个恼人的问题,我想解决。在我的页面上,我有一些Javascript,我需要通过SignalR发送/接收消息。这个页面的工作原理就像应该的那样,但是在VS2012 IDE中,我总是会收到有关代码中语法错误的警告。这是我的视图中的代码:

$(function () 
    {
        var usr = $.connection.paMessageHub;

        // I cut out the inner code of the following function
        $.connection.hub.start().done(function () { });  

        function sendValue = function (StationId, DataPointId, Value) 
        {
            usr.server.sendValue(StationId, DataPointId, Value);
        };

        usr.client.updateValue = function (StationId, DataPointId, NewValue)
        {
            if (StationId == @ViewBag.StationId )
            {
                updateValues(StationId, DataPointId, NewValue);
            }

    };

我知道在最后一行显然缺少一个结束的花括号,但是代码只是在完全相同的情况下运行完美。语法高亮显示

的右括号中的语法错误

if (StationId == @ViewBag.StationId )

并且还说'')'预期'在行中的分号

updateValues(StationId, DataPointId, NewValue);

这是一个错误还是我错过了一些重要的东西?当我在倒数第二个插入一个闭合的卷曲括号时,该脚本不再起作用。谢谢你的帮助!

更新:此简化示例显示相同的错误:

if ( 1 == @ViewBag.StationId )
{
    alert("Test!");
}

1 个答案:

答案 0 :(得分:1)

当你混合使用C#和JavaScript时,razor有时会感到困惑。阅读这篇文章它将解决或你的疑问(它对我而言)关于为什么剃刀“迷惑”http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx