1

我有一个烦人的问题想要解决。在我的页面上,我有一些通过 SignalR 发送/接收消息所需的 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 )

并且还在该行的分号上说“')'预期”

updateValues(StationId, DataPointId, NewValue);

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

更新:这个简化的例子显示了同样的错误:

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

1 回答 1

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

于 2013-06-27T10:17:38.013 回答