Obtention d'objets de modèle entiers à partir de données de formulaire dans MVC
Lorsque vous transmettez des objets de modèle entiers via des données de formulaire, il est essentiel de garantir leur conversion correcte. au type de modèle dans le contrôleur. Voici comment y parvenir :
Implémentation de JavaScript :
Utilisez FormData pour sérialiser l'intégralité du modèle plutôt que d'ajouter manuellement des propriétés individuelles :
var formdata = new FormData($('form').get(0));
Cela inclura également toutes les entrées de fichiers présentes dans le formulaire.
Ajax Demande :
Publiez les données du formulaire à l'aide d'Ajax, en désactivant le traitement automatique et le paramètre de type de contenu :
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
Action du contrôleur :
Dans le contrôleur, définissez une action qui accepte le modèle en paramètre :
[HttpPost] public ActionResult YourActionName(YourModelType model) { // Perform operations on the model... }
Alternativement, si le modèle contient une entrée de fichier, le deuxième paramètre doit être HttpPostedFileBase pour la propriété de fichier :
[HttpPost] public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage) { // Handle file and perform operations on the model... }
Appendice de données supplémentaires :
Si nécessaire, des propriétés supplémentaires peuvent être ajouté aux données du formulaire en utilisant :
formdata.append('someProperty', 'SomeValue');
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!