我有一个恼人的问题,我想解决。在我的页面上,我有一些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!");
}
答案 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