我有一个烦人的问题想要解决。在我的页面上,我有一些通过 SignalR 发送/接收消息所需的 Javascript。该页面正常工作,但在 VS2012 IDE 中我总是收到有关代码中语法错误的警告。这是我 View 中的代码:
$(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!");
}
最佳答案
当你混合 C# 和 JavaScript 时,有时 razor 会有点困惑。阅读这篇文章它将解决您对 Razor 为何“感到困惑”的疑虑(对我来说是这样)http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx
关于javascript - ASP.NET MVC4,Javascript 中的 Razor : Page runs but Syntax Error in VS2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17340310/