2013-05-07 20 views
0

我打電話使用使用AJAX技術的MVC控制器:ASP MVC AJAX調用 - JSON參數收到空

var ajaxOptions = { url: url, type: 'POST', contentType: 'application/json', 
        data: JSON.stringify(data) }; 

我發送以下JSON數據

data = "{"TagList":["AA","BB","CCC","DDDD"]}" 

在我的控制器下面的方法是所謂

[HttpPost] 
public async Task<JsonResult> Update(TagItem tagItem) 

,我得到TagItem.TagList = NULL

public class TagItem 
{ 
    public List<string> TagList { get; set; } 
} 

回答

4

您錯過了JSON中的tagItem包裝。

data = {"tagItem":{"TagList":["AA","BB","CCC","DDDD"]}}; 

var ajaxOptions = 
      { url: url, 
       type: 'POST', 
       contentType: 'application/json; charset=utf-8', 
       data: JSON.stringify(data) 
       }; 

試試這個,例如: -

var data = { "tagItem": { "TagList": ["AA", "BB", "CCC", "DDDD"]} }; 

    $.ajax({ 
     type: 'POST', 
     url: "home/test", 
     data: JSON.stringify(data), 
     contentType: 'application/json; charset=utf-8' 
    }); 
2

contentType試試這個:

$.ajax({ 
    type: 'POST', 
    dataType: 'json', 
    url: url, 
    data: JSON.stringify(data), 
    contentType: 'application/json; charset=utf-8' 
}); 

補充:

由於@PSL發現OP失去tagItem,用它包裹當前data後,代碼必須工作。

+0

他的問題看,似乎更像是他缺少包裝。 – PSL 2013-05-07 20:14:10

+1

@PSL +1很棒! – webdeveloper 2013-05-07 20:19:43