这是一个关于某些基本问题的问题,但我搜索得很远,我找不到令人信服的答案。我想JSON编码一个包含对象列表的整个模型。每个主题的建议是做@ Html.Raw(Json.Encode(@Model))。但我正在尝试这个,列表被编码为[对象,对象,对象]。没用,因为我想要这些对象中的实际信息。
我知道您可以手动创建JSON并包含Razor模型的每个单独部分。但这看起来似乎很愚蠢,因为如果我必须为任何模糊或远程复杂的模型显式创建JSON对象,那么首先在编码快捷方式中有什么意义呢?
当然必须有一些常见的工具或技术,只需要使用Razor模型并将其转换为JSON,其中包含模型的完整信息。
答案 0 :(得分:1)
我创建了一个像这样的扩展帮助方法
public static IHtmlString Stringify(this HtmlHelper htmlHelper, object model) {
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = serializer.Serialize(model);
var html = new HtmlString(json);
return html;
}
并且能够在像这样的视图中调用它
var json = '@Html.Stringify(Model)';
虽然我使用System.Web.Script.Serialization.JavaScriptSerializer
你可以轻松使用Json.Net