Maison >développement back-end >C++ >Comment passer un modèle entier via FormData dans MVC?

Comment passer un modèle entier via FormData dans MVC?

Patricia Arquette
Patricia Arquetteoriginal
2025-02-02 21:41:10674parcourir

How to Pass a Whole Model via FormData in MVC?

Soumettre un modèle complet via FormData dans ASP.NET MVC

Transmission d'un objet modèle complet à l'aide de FormData dans ASP.NET MVC et la désérialisation par la suite dans le contrôleur peut être complexe. Ce guide offre une solution simple.

côté client (javascript)

Pour convertir votre modèle en formdata, utilisez:

<code class="language-javascript">const formData = new FormData(document.querySelector('form'));</code>

Cette méthode gère efficacement tous les fichiers téléchargés via <input type="file"> éléments.

Ajax Post Demande

Envoyez le formdata en utilisant ajax:

<code class="language-javascript">$.ajax({
  url: '@Url.Action("YourActionName", "YourControllerName")',
  type: 'POST',
  data: formData,
  processData: false,
  contentType: false,
  success: function(response) {
    // Handle successful response
  },
  error: function(xhr, status, error) {
    // Handle errors
  }
});</code>

côté serveur (contrôleur)

Dans votre contrôleur, définissez l'action pour recevoir les données:

<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
  // Process the model
  return View(); // Or any other appropriate return
}</code>

Gestion des fichiers séparément (si le modèle manque HttpPostedFileBase propriété):

Si votre modèle n'inclut pas de propriété pour HttpPostedFileBase, gérez les téléchargements de fichiers séparément:

<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase uploadedFile)
{
  // Process the model and uploadedFile
  return View();
}</code>

Ajout de propriétés supplémentaires:

Pour inclure les propriétés non présentes dans votre formulaire, ajoutez-les à FormData:

<code class="language-javascript">formData.append('additionalProperty', 'additionalValue');</code>

Cette approche complète simplifie le processus de soumission et de traitement des modèles complets à l'aide de FormData dans ASP.NET MVC. N'oubliez pas de gérer les erreurs potentielles de manière appropriée dans le rappel Ajax error.

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