2016-09-10 56 views
-2

這是一個關於基本問題的問題,但是我搜索得很深,找不到令人信服的答案。我想要JSON編碼包含對象列表的整個模型。每個主題的建議是做@ Html.Raw(Json.Encode(@Model))。但我正在嘗試,列表被編碼爲[Object,Object,Object]。無用的,因爲我想要這些對象內的實際信息。優雅的方式來編碼包含MVC模型的JSON編碼模型

我知道你可以手動創建一個JSON幷包含Razor模型的每個獨立部分。但是這似乎很愚蠢,因爲如果我必須爲任何模糊或者遠程複雜的模型顯式創建JSON對象,那麼編碼快捷方式中的關鍵點是什麼?

當然,必須有一些常見的工具或技術,只需要一個剃刀模型,並將其轉換爲JSON,其中包括該模型的信息完整

+0

我不知道我完全理解你。你只是試圖從剃鬚刀視圖中獲取@Model的字符串Json表示嗎? – Nkosi

+0

是的。 @ Html.Raw(Json.Encode(@Model))只停留在頂層。不編碼模型的實際內容。 – JAbraham

+0

你可以展示你描述的內容嗎? – Nkosi

回答

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; 
} 

擴展的輔助方法,雖然我用System.Web.Script.Serialization.JavaScriptSerializer你可以一樣容易使用Json.Net

能夠調用它的觀點是這樣

var json = '@Html.Stringify(Model)';