解析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()'
...的语法显然是错误的,但它应该如何?
答
每当你想渲染模型对象为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这个答案。 –
'@ Model.valueContainer.ToString()'是单引号内,因此是没有被评估,但被视为一个字符串。 – AKS