【发布时间】:2016-11-18 17:00:35
【问题描述】:
我打算使用来自 jquery 的 ajax 调用将数据发布到 MVC 控制器。 我想使用 JSON.stringify() 将 json 对象的字符串传递给控制器,但我不断收到 400 错误请求。 这是发送字符串 json 对象的坏习惯吗?还是我必须使用视图模型?
我在 MVC 中的操作如下,接受字符串值作为参数。
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string values)
{
.. do some actions here ...
return View("Customer");
}
我的 Ajax 调用如下所示。
$("#customer-add-btn").click(function () {
var data = $('#customer-add-form').serializeArray();
console.log(data);
var values = JSON.stringify(data);
console.log(values);
$.ajax({
url: 'Customer/Create',
data: values,
type: "POST",
dataType: "json",
data: values,
success: function (result) {
console.log('success');// do something on success
},
error: function () {
console.log('error');// do something on error
}
});
});
这是字符串化表单值的示例。
[ {"name":"business_name","value":"adsf"},{"name":"business_phone_number","value":"124"},{"name":"business_contact_number","value":""} ]
【问题讨论】:
-
尝试从
ActionMethod中删除ValidateAntiForgeryToken,而param不是string,它通过ajax传递。尝试将其作为键值对接收或将其定义为键值对类..
标签: jquery asp.net-mvc asp.net-ajax