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

时间:2016-04-25 12:08:05

标签: javascript json asp.net-mvc parsing razor

我正在尝试重建Razor表单以在提交后保留屏幕值。表单部分使用可配置值动态构建。我正在尝试使用下面的代码恢复值

@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()'的语法显然是错误的,但应该怎么做?

1 个答案:

答案 0 :(得分: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;
}