Transmettre un ensemble de modèles complexe via FormData peut être un défi, mais utiliser une combinaison de sérialisation jQuery et de contrôleur MVC liaison, il est possible d'y parvenir efficacement.
Pour convertir le modèle défini dans FormData, vous pouvez utiliser l'objet FormData de jQuery avec la sérialisation du formulaire. Si le modèle est lié à la vue dans les balises de formulaire, sérialisez-le en utilisant :
var formdata = new FormData($('form').get(0));
Cela inclura automatiquement toutes les propriétés du modèle liées aux contrôles de formulaire, y compris les entrées de fichier.
Soumettez les données du formulaire au contrôleur à l'aide d'une requête AJAX :
$.ajax({ url: '@Url.Action("YourActionName", "YourControllerName")', type: 'POST', data: formdata, processData: false, contentType: false, });
En définissant processData et contentType sur false, jQuery permettra aux données du formulaire d'être envoyées telles quelles.
Dans votre contrôleur, vous pouvez définir une méthode fortement typée qui se liera à l'ensemble de modèles :
[HttpPost] public ActionResult YourActionName(YourModelType model) { }
Le système de liaison de modèle de MVC remplira automatiquement le modèle à partir des données de formulaire en fonction de ses noms de propriété.
Si vous devez inclure des propriétés non-modèle supplémentaires dans les données du formulaire, utilisez simplement :
formdata.append('someProperty', 'SomeValue');
Cela vous permet d'étendre les données du formulaire avec des valeurs personnalisées accessibles dans le contrôleur .
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!