解析JSON字符串时无法识别模型值

问题描述:

我正在尝试重建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

每当你想渲染模型对象为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这个答案。 –