6

過去にも同様の質問がありましたが、今では少し古くなっているようです。ASP.NETMVCでJsonResultを構築するための最良の方法について現在の一般的なコンセンサスを得ようとしています。この質問のコンテキストは、.NET 4/4.5およびMVC4から利用可能な最新の方法を使用することです。

これが私が何年にもわたって出くわしたいくつかの人気のある方法です:

var json1 = new { foo = 123, bar = "abc" };

var json2 = new Dictionary<string, object>{ { "foo", 123 }, { "bar", "abc" } };

dynamic json3;
json3.foo = 123;
json3.bar = "abc";

また、ご希望の方法の長所/短所を説明してください

4

1 に答える 1

18

個人的に私はこれを使用します:

public class MyViewModel
{
    public int Foo { get; set; }
    public string Bar { get; set; }
}

その後:

public ActionResult Foo()
{
    var model = new MyViewModel
    {
        Foo = 123,
        Bar = "abc"
    };
    return Json(model, JsonRequestBehavior.AllowGet);
}

長所:

  • 強いタイピング
  • マジックストリングはありません
  • リファクタリングフレンドリー
  • ユニットテストに対応
  • コードは、前のポイントを真に保ちながら、新しいWebApiコントローラーアクション呼び出しに完全に簡単に置き換えることができます。

    public class ValuesController: ApiController
    {
        public MyViewModel Foo()
        {
            return new MyViewModel
            {
                Foo = 123,
                Bar = "abc"
            };
        }
    }
    

短所:まだ遭遇していません。

于 2012-07-18T17:01:52.613 に答える