1

我有一個令人討厭的問題,我想解決。在我的頁面上,我有一些Javascript,我需要通過SignalR發送/接收消息。 THat頁面的工作原理與此相似,但在VS2012 IDE中,我始終會在代碼中發出關於語法錯誤的警告。這是我認爲的代碼:ASP.NET MVC4,Javascript中的Razor:頁面運行但語法錯誤VS2012

$(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);

分號這是一個錯誤還是我我錯過了重要的事情?當我在第二個插入一個閉幕式的括號時,腳本不再工作。謝謝你的幫助!

更新:這個簡單的例子顯示了同樣的錯誤:當你混合C#和JavaScript

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

試試這個 - if(StationId.toString()== @ ViewBag.StationId) – Amit

回答