Maison >interface Web >js tutoriel >Comment transmettre un modèle complet via FormData à un contrôleur ASP.NET MVC ?

Comment transmettre un modèle complet via FormData à un contrôleur ASP.NET MVC ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-19 14:31:10615parcourir

How to Pass a Complete Model via FormData to an ASP.NET MVC Controller?

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 :

  1. 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));
  2. 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,  
    });
  3. 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)
    {
    }
  4. 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!

Déclaration:
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