2016-09-10 9 views
-2

これは何か基本的なことに関する質問ですが、私はこれまでに検索してきましたが、説得力のある答えは見つかりません。私はオブジェクトのリストを含むモデル全体をJSONエンコードしたい。すべてのトピックのアドバイスは、@ Html.Raw(Json.Encode(@ Model))を行うことです。しかし、私はそれを試して、リストは[オブジェクト、オブジェクト、オブジェクト]としてエンコードされています。これらのオブジェクトの内部に実際の情報が必要なので、無駄です。MVCのリストを含むJSONエンコードモデルへのエレガントな方法

私は、JSONを手動で作成し、Razorモデルのそれぞれの部分を含めることができます。しかし、漠然としたモデルやリモートの複雑なモデルのためにJSONオブジェクトを明示的に作成しなければならない場合は、まずエンコーディングのショートカットのポイントは何ですか?

Razorモデルを単に取り、それをモデルの完全情報を含むJSONに変換する一般的なツールや技術が必要です。

+0

私はあなたを完全に理解しているかわかりません。あなたはひげそりビューの中から@Modelの文字列Json表現を取得しようとしていますか? – Nkosi

+0

はい。 @ Html.Raw(Json.Encode(@ Model))は、最上位層で停止します。モデルの実際の内容をエンコードしません。 – JAbraham

+0

あなたが描いていることの[mcve]を表示できますか? – 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; 
} 

のような拡張ヘルパーメソッドを作成し、私はあなたが同じように簡単Json.Net

を使用することができ System.Web.Script.Serialization.JavaScriptSerializerを使用しますが、この

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

のようなビューでそれを呼び出すことができました

関連する問題