asp mvc ajax调用 - json参数收到null

时间:2013-05-07 19:53:06

标签: .net ajax asp.net-mvc json

我使用ajax调用mvc控制器:

 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; }
}

2 个答案:

答案 0 :(得分: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'
    });

答案 1 :(得分:2)

使用contentType

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

<强>加了:

由于@PSL发现OP丢失了tagItem,在用它包装当前data后,代码必须正常工作。