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

ASP.NET MVC4,Javascript中的Razor:页面运行,但VS2012中存在语法错误,javascript,asp.net-mvc-4,razor,syntax-error,syntax-highlighting,Javascript,Asp.net Mvc 4,Razor,Syntax Error,Syntax Highlighting,我有一个烦人的问题要解决。在我的页面上,我有一些Javascript,我需要它们通过信号器发送/接收消息。该页面的工作方式与它应该的一样,但在VS2012 IDE中,我总是收到一条关于代码中语法错误的警告。在我看来,这就是代码: $(function () { var usr = $.connection.paMessageHub; // I cut out the inner code of the following function

我有一个烦人的问题要解决。在我的页面上,我有一些Javascript,我需要它们通过信号器发送/接收消息。该页面的工作方式与它应该的一样,但在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)

并在行中的分号上写“')”预期“

updateValue(StationId、DataPointId、NewValue)

这是一个错误还是我遗漏了一些重要的东西?当我在最后一个括号中插入一个结束的卷曲括号时,脚本不再工作。谢谢你的帮助

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

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

有时候,当你混合使用C#和JavaScript时,razor会有点困惑。阅读这篇文章,它将解决你的疑问(它为我解决了)为什么razor会“感到困惑”

有时razor会在混合C#和JavaScript时感到困惑。阅读这篇文章,它将解决你的疑问(它为我解决了)关于razor为什么会“困惑”

试试这个-如果(StationId.toString()==@ViewBag.StationId)试试这个-如果(StationId.toString()==@ViewBag.StationId)