2013-05-07 32 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