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!