我通过ajax将数据发布到一个动作,但问题是我无法通过控制器动作中的ajax发布数据。在调试时,调用会转移到操作中,但我没有得到任何数据,甚至没有'null'。
这是我的ajax电话,
$.ajax({
type: 'POST',
url:' @Url.Action("PostAmount", "Deal")',
data: { country: 2, amount: 4.02 },
datatype:JSON,
success: function (data) {
alert("hiiii"+data);
}
});
和我的行动,
[HttpPost]
public JsonResult PostAmount(int country,double amount)
{
AllocationViewModel mod = new AllocationViewModel();
return Json(mod);
}
答案 0 :(得分:4)
试试这个:
var dataToPost = "{ country:'" + 2 + "', amount:" + 4.02 + "}";
$.ajax({
url: @Url.Action("PostAmount", "Deal")',
type: "POST",
dataType: 'json',
data: dataToPost,
cache: false,
contentType: "application/jsonrequest; charset=utf-8",
success: function (data) {
alert("hi"+ data);
}
});
答案 1 :(得分:0)
尝试以下方法:
$.ajax({
type: 'POST',
url:' @Url.Action("PostAmount", "Deal")',
data: { "country": "2", "amount": "4.02" },
datatype:JSON,
success: function (data) {
alert("hiiii"+data);
}
});
或最佳解决方案是将值保存在对象中并使用jquery函数“stringify”,然后将值发送出去。应该工作。
答案 2 :(得分:0)
尝试将json放入引号
$.ajax({
type: 'POST',
url:'@Url.Action("PostAmount", "Deal")',
data: { country: "2", amount: "4.02" },
dataType:"json",
traditional:true,
success: function (data) {
alert("hiiii"+data);
}
});
答案 3 :(得分:0)
您还可以在对象上使用JSON.stringify(yourObject)
使其成为JSON对象。这样可以更轻松地在javascript中创建对象,然后将其传递到post请求的data参数中。
还可以使用字符串作为数据类型参数(https://api.jquery.com/jquery.post/),如上面的答案所示。
var dataToPost = { country: 2, amount: 4.02 };
$.ajax({
type: 'POST',
url:' @Url.Action("PostAmount", "Deal")',
data: JSON.stringify(dataToPost),
datatype: 'json',
success: function (data) {
alert("hiiii"+data);
}
});
另一种方式是JSON.parse(yourJsonObject)
。这样,您就可以将JSON字符串解析为Javascript对象。