Transmission d'un modèle entier via FormData et réception dans MVC
Dans ASP.NET MVC, il est souvent souhaitable de transmettre un modèle complet objet via un formulaire au responsable du traitement. Cependant, le simple fait d'ajouter le modèle à FormData entraînera sa réception sous forme de chaîne dans le contrôleur, le rendant inutilisable.
Solution :
Pour transmettre efficacement un modèle via FormData, l'approche suivante peut être adoptée :
Sérialiser le Modèle :
Utilisez la fonction FormData de jQuery pour sérialiser le modèle. Cela convertira le modèle en un objet FormData, qui peut inclure à la fois les propriétés du modèle et les entrées de fichier :
var formdata = new FormData($('form').get(0));
Publiez le FormData :
Envoyez le Objet FormData via un POST AJAX requête :
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
Recevoir le modèle dans le contrôleur :
Dans l'action du contrôleur, acceptez le modèle comme paramètre du type approprié :
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
Facultatif : Gestion supplémentaire Propriétés :
Si le modèle ne contient pas de propriétés pour des données de formulaire supplémentaires, vous pouvez les ajouter manuellement :
formdata.append('someProperty', 'SomeValue');
En suivant ces étapes, vous pouvez efficacement transmettre un modèle via FormData et recevez-le dans votre contrôleur MVC dans un format utilisable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!