jquery에서 ajax 호출을 사용하여 MVC 컨트롤러에 데이터를 게시 할 계획입니다. JSON.stringify()를 사용하여 json 객체의 문자열을 컨트롤러에 전달하려고하지만 계속해서 400 개의 잘못된 요청을 받고 있습니다. 문자열 json 객체를 보내는 것이 나쁜 방법입니까? 또는 viewmodel을 사용해야합니까?jquery에 대한 잘못된 요청 Ajax가 문자열 화 된 json 데이터를 MVC 작업에 게시하는 중
내 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
}
});
});
여기에는 문자열 형식 값의 샘플이 나와 있습니다.
$.ajax({
type: "POST",
url: '@Html.Raw(Url.Action("Create", "Customer"))',
data: { values: JSON.stringify(values) },
dataType: "json",
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'은'ajax'를 통해 전달되는'string'이 아닙니다. 키 값 쌍으로 수신하거나 키 값 쌍 클래스로 정의 해보십시오. –