2015-12-06 62 views
1

我需要從viewbag屬性值賦給JavaScript變量GET值在JavaScript

我已經通過一些崗位的消失和創建的代碼按認。

var selectedID = null; 
@if (ViewBag.Section != null) { 
    <script type="text/javascript"> 
     selectedID =ViewBag.Section ; 
    </script> 
} 

但問題在於它不接受腳本中的ViewBag屬性並顯示語法錯誤。大部分的職位有解決這種格式,

我已經試過類似的解決方案:

1.

@{selectedID =ViewBag.Section ;} 

2.

@if(ViewBag.DoAboutTab != null) 
{ 
    var doAboutTab ="something"; 
} else { 
    var doAboutTab ="something_else"; 
} 

這個解決方案是不分配值變量@{}代碼 我可以設置恆定值但不是Viewbag屬性通過此解決方案

3. selectedID = '@ViewBag.Section' !== @ViewBag.Section;

該解決方案還沒有工作時@ViewBag.Sectionnull

我怎麼能修復腳本問題嗎?

回答

4
<script type="text/javascript"> 
    var selectedID = @Html.Raw(Json.Encode(ViewBag.Section)); 
</script> 

如果ViewBag.Section不那麼確定你會得到:

<script type="text/javascript"> 
    var selectedID = null; 
</script> 

,如果例如ViewBag.Section等於Some nasty escaped " string那麼你會得到一個正確編碼值不會破壞你的JavaScript:

<script type="text/javascript"> 
    var selectedID = "Some nasty escaped \" string"; 
</script> 
+1

............. Json救了我,thanx –