Maison > interface Web > js tutoriel > Comment transmettre un ensemble de modèles complexes via FormData à un contrôleur MVC ?

Comment transmettre un ensemble de modèles complexes via FormData à un contrôleur MVC ?

Mary-Kate Olsen
Libérer: 2025-01-01 01:00:09
original
354 Les gens l'ont consulté

How to Pass a Complex Model Set via FormData to an MVC Controller?

Convertir un ensemble de modèles en FormData et le récupérer dans MVC

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.

Sérialisation JavaScript

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));
Copier après la connexion

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.

Publier les données dans Contrôleur

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,         
});
Copier après la connexion

En définissant processData et contentType sur false, jQuery permettra aux données du formulaire d'être envoyées telles quelles.

Liaison du contrôleur

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)
{
}
Copier après la connexion

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é.

FormData Amélioration

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');
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal