2014-02-24 56 views
5

我在view.cshtml這些行:如何填充JavaScript變量與C#的?

$("document").ready(function(){ 
    @{ 
     var cx = Json.Encode(ViewBag.x); 
     var cy = Json.Encode(ViewBag.y); 
    } 
    var x = @cx; 
    var y = @cy; 
}); 

但現在有在JavaScript代碼;下紅線和錯誤是Syntax error

什麼問題?

+1

何時需要,使用'@'或'@()'指令正確解釋剃鬚刀。 –

+1

您的解決方案將在http://stackoverflow.com/questions/5614941/mix-razor-and-javascript-code和http://stackoverflow.com/questions/4599169/using-razor-within-javascript –

+0

@ AmirHosseinMehrvarzi謝謝。 –

回答

6

則必須將JS變量,除非它們是數字或布爾

$("document").ready(function(){ 
    @{ 
     var cx = Json.Encode(ViewBag.x); 
     var cy = Json.Encode(ViewBag.y); 
    } 
    var x = "@cx"; 
    var y = "@cy"; 
}); 
+0

我不明白爲什麼會想要一串JSON而不是一個JS對象字面值。也似乎它(JSON)在最終的HTML輸出中無效? – user2864740

+0

@ user2864740我只需要一個json太填充hicharts類和series.highcharts.com。 –

2

嘗試封閉變量""這樣的:

$("document").ready(function(){ 
    @{ 
     var cx = Json.Encode(ViewBag.x); 
     var cy = Json.Encode(ViewBag.y); 
    } 
    var x = "@cx"; 
    var y = "@cy"; 
}); 

您可能還需要檢查ASP.NET MVC 3: Razor’s @: and syntax

+0

也許我失去了一些東西..爲什麼有人想要一個*字符串*「JSON編碼」的數據?他們不想要一個JS對象字面值?也似乎它只會是*無效* JS .. – user2864740