Asp.Net Mvc JQuery ajax输入参数为null

我试图用jQuery Ajax发布一些数据,但我的Ajax方法中的参数为null。

这是发送数据的简单测试:

var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' }; jQuery.ajax({ type: "POST", url: "Create", contentType: 'application/json; charset=utf-8', data: $.toJSON(dataPost), dataType: "json", success: function(result) { alert("Data Returned: "); } }); 

我的Ajax方法如下所示:

 [HttpPost] public ActionResult Create(string title, string message, string tagIds) {... } 

我发送的数据存在一些基本错误,但我无法弄清楚是什么。 标题,消息和tagIds一直都是null,所以编码有问题,我只是不知道是什么。

最佳参数tagIds应该是一个数组或guid列表。

注意:jQuery.toJSON就是这个插件

Create controller操作不期望参数是JSON序列化的,因此您不必这样做。 尝试直接传递它们:

 var dataPost = { titel: 'titel', message: 'msg', tagIds: 'hello' }; jQuery.ajax({ type: "POST", url: "Create", data: dataPost, dataType: "json", success: function(result) { alert("Data Returned: "); } }); 

我们不需要contentType: 'application/json; charset=utf-8', contentType: 'application/json; charset=utf-8',$.toJSON

这是代码让我开心!

  $(function () { $("#btnSumbit").click(function () { $('#results').hide(); $('#loadingmessage').show(); var a = $("#query").val(); $.ajax({ type: "POST", url: "/Search/Index", data: ({ query: a }), datatype: "json", success: function (data) { $('#results').empty(); for (var i = 0; i < data.length; i++) { var div = "
" + data[i].Name + "
"; $("#results").append(div); } $('#loadingmessage').hide(); $('#results').show(); }, failure: function (errMsg) { $('#loadingmessage').hide(); alert(errMsg); } }); }); });