2

以下の定義を持つ3つのクラスがあります

  public class UserRole
    {
        public User User { get; set; }
        public IEnumerable<Role> Role { get; set; }
    }
public class Role
{
   public int Id{ get; set; }
   public string RoleName{ get; set; }
}
public class User
{
   public int Id{ get; set; }
   public string UserName{ get; set; }
}

これはアクションメソッドです:

  // GET: /Admin/UserManagement/Create
        [HttpPost]
        [Transaction]
        public ActionResult Save(UserRole userrole)
        {
        }

Jquery でいくつかの JavaScript vars をクラス Obj にシリアル化し、それを AJAX ポスト経由で MVC コントローラー アクションに送信する方法はありますか?

4

2 に答える 2

17

JSON リクエストを送信できます。

var data = {
    user: {
        id: 5,
        userName: 'john'
    },
    role : [
        { id: 1, roleName: 'role 1' },
        { id: 2, roleName: 'role 2' },
        { id: 3, roleName: 'role 3' }
    ]
};

$.ajax({
    url: '@Url.Action("Save")',
    type: 'POST',
    contentType: 'application/json',
    data: JSON.stringify(data),
    success: function(result) {
        alert('success');
    }
});

このJSON.stringifyメソッドは最新のブラウザーにネイティブに組み込まれていますが、レガシー ブラウザーをサポートする必要がある場合は、json2.jsスクリプトを含めることができます。

于 2012-04-24T06:00:38.803 に答える
1

すべてのパーツ(jQuery、MVC Framework)をすぐに使用できる最も簡単な方法は、オブジェクトグラフをクライアントでJSONデータとしてシリアル化し、それをPOSTに渡すことです。MVCフレームワークは、実際には、モデルのバインドを適切に分類するのに非常に優れています。

同様の複雑なオブジェクトを含むダウンロード可能なサンプルがここにあります:http: //theycallmemrjames.blogspot.ca/2010/05/aspnet-mvc-and-jquery-part-4-advanced.html

さまざまなシナリオでのモデルバインディングを扱います。ニーズに合わせてスーツケースの例を確認してください。免責事項:それは私のブログです、それが気分を害しないことを願っています。

乾杯。

于 2012-04-24T04:21:01.333 に答える