优雅的方式到JSON编码模型包含MVC中的列表

时间:2016-09-10 19:55:03

标签: json asp.net-mvc razor

这是一个关于某些基本问题的问题,但我搜索得很远,我找不到令人信服的答案。我想JSON编码一个包含对象列表的整个模型。每个主题的建议是做@ Html.Raw(Json.Encode(@Model))。但我正在尝试这个,列表被编码为[对象,对象,对象]。没用,因为我想要这些对象中的实际信息。

我知道您可以手动创建JSON并包含Razor模型的每个单独部分。但这看起来似乎很愚蠢,因为如果我必须为任何模糊或远程复杂的模型显式创建JSON对象,那么首先在编码快捷方式中有什么意义呢?

当然必须有一些常见的工具或技术,只需要使用Razor模型并将其转换为JSON,其中包含模型的完整信息。

1 个答案:

答案 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