Я планирую использовать ajax-вызов из jquery для отправки данных в контроллер MVC. Я хочу передать строку json-объектов с помощью JSON.stringify() в контроллер, но я постоянно получаю 400-й запрос. Является ли это плохой практикой отправки строки json объекта? или я должен использовать viewmodel?плохой запрос для jquery Ajax для отправки строковых json-данных в действие MVC
My Action в 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":""} ]
Попробуйте удалить ' ValidateAntiForgeryToken' из вашего 'ActionMeth od' и 'param' не является' string', который передается через 'ajax'. Попробуйте получить его как пары ключевых значений или определить его как класс пары ключей. –