2017-08-17 41 views
0

我有類具有以下結構通行證類類型參數通過AJAX的jQuery

public class MyType 
    { 
     [Key] 
     [Required] 
     public string name { get; set; } 
     [Key] 
     [Required] 
     public string type{ get; set; } 

    } 


Public Class A 
{ 
string Id{get;set;} 
public List<MyType> aList{get;set;} 
} 

我的AJAX調用的是以下幾點:

var listitem=[ 
{name:"a",type:1}, 
{name:"b",type:2}, 
{name:"c",type:3} 
] 

    $.ajax({ 
       url: '@Url.Action("ActionMethod", "Controller")', 
       type: 'post', 
       async: false, 
       data: { 
        Id: 1,      
        aList :listitem 

       }, 
       success: function (resp) { 

       }, 
       error: function (resp) { 
       } 
      }); 

我的行動方法如下:

[HttpPost] 
      public ActionResult ActionMethod(A adata) 
      { 
       return some action; 

      } 

我在ActionMethod中獲得Id的值,但列表項是空白的?我怎麼能通過名單?

+0

應該有'datatype'你的'client'和'server',請分享你的'MyType'類以及一個'sync' – manish

+0

@manish的MyType添加 – MAT14

+1

我認爲問題是:您的數據(aList)是一個列表,但您的操作方法需要一個對象。 – himyata

回答

3

嘗試這樣的:

var adata = { 
    Id: 1, 
    aList: [ 
     { name: "a", type: 1 }, 
     { name: "b", type: 2 }, 
     { name: "c", type: 3 } 
    ] 
} 

$.ajax({ 
    url: '@Url.Action("ActionMethod", "Controller")', 
    type: 'post', 
    data: JSON.stringify(adata), 
    contentType: "application/json; charset=utf-8", 
    success: function (resp) { 

    }, 
    error: function (resp) { 
    } 
}); 
+3

您還需要設置'contentType:'application/json''(並且從不使用'async:false') –

+0

@StephenMuecke謝謝。我編輯了代碼 – himyata

+0

我忘了添加內容類型謝謝 – MAT14