我试图用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)
{... }
我发送的数据存在一些基本错误,但我无法弄清楚是什么。标题,消息和tagId一直都是null,所以编码有问题,我只是不知道是什么。
最佳参数tagIds应该是一个数组或guid列表。
注意:jQuery.toJSON是这个plugin
答案 0 :(得分:15)
Create
控制器操作不希望参数被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: ");
}
});
答案 1 :(得分:0)
我们不需要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 = "<div>" + data[i].Name + "</div>";
$("#results").append(div);
}
$('#loadingmessage').hide();
$('#results').show();
},
failure: function (errMsg) {
$('#loadingmessage').hide();
alert(errMsg);
}
});
});
});