Je prévois d'utiliser l'appel ajax de jquery pour publier des données au contrôleur MVC. Je veux passer la chaîne d'objets json en utilisant JSON.stringify() au contrôleur mais je reçois continuellement la mauvaise requête 400. Est-ce une mauvaise pratique d'envoyer un objet string json? ou dois-je utiliser le viewmodel?mauvaise demande pour jquery Ajax de publier des données json stringifiées à l'action MVC
Mon action dans MVC est comme ci-dessous en acceptant la valeur de chaîne en tant que paramètre.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(string values)
{
.. do some actions here ...
return View("Customer");
}
Mon appel Ajax est comme ci-dessous.
$("#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
}
});
});
et voici l'exemple de valeurs de forme stringifiées.
[ {"name":"business_name","value":"adsf"},{"name":"business_phone_number","value":"124"},{"name":"business_contact_number","value":""} ]
Essayez de supprimer ' ValiderAntiForgeryToken' depuis votre 'ActionMeth od' et 'param' ne sont pas' string' qui est passé par 'ajax'. Essayez de le recevoir en tant que paires de valeurs clés ou définissez-le comme classe de paire de valeur clé .. –