2016-04-25 68 views
0

我正在嘗試重建Razor表單以在提交後保留屏幕值。表單部分使用可配置的值動態構建。我試圖恢復低於解析JSON字符串時無法識別模型值

@if (@Model.valueContainer != null && @Model.valueContainer != "") 
{ 
    <script >       
     var json = '@Model.valueContainer.ToString()', obj = JSON.parse(json); 

     if (obj.customFieldTypeID != null && obj.customFieldTypeID == 2) 
     {       
      document.getElementById("textbox_" + obj.id).value = obj.textboxEntry; 
     } 
    </script>     
} 

這正常使用的代碼值時,我用JSON字符串替換@Model.valueContainer.ToString()但它不能每一次,因爲它是。 'var json = '@Model.valueContainer.ToString()' ...的語法顯然是錯誤的,但它應該如何?

+0

'@ Model.valueContainer.ToString()'是單引號內,因此是沒有被評估,但被視爲一個字符串。 – AKS

回答

0

每當你想渲染模型對象爲JSON,您可以使用Json.Encode Method

您可以使用以下方法:

var obj = '@Html.Raw(Json.Encode(@Model.valueContainer))'; 

if (obj.customFieldTypeID != null && obj.customFieldTypeID == 2) 
{       
    document.getElementById("textbox_" + obj.id).value = obj.textboxEntry; 
} 
+0

工作,謝謝 – user616076

+0

太棒了! Upvote這個答案。 –