Maison >développement back-end >C++ >Comment passer des modèles complexes dans les données de forme pour les applications MVC?

Comment passer des modèles complexes dans les données de forme pour les applications MVC?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-02 21:46:14893parcourir

How Can I Pass Complex Models in Form Data for MVC Applications?

passant des formulaires de modèle complexe dans l'application MVC

Dans l'application MVC, la transmission du modèle en tant que données de formulaire dans le cadre des données de formulaire peut apporter des défis, en particulier lors du traitement de l'ensemble du modèle entier. Cet article résout ce problème en fournissant une solution complète.

Défi: la sérialisation du modèle en javascript

Lorsque vous essayez d'utiliser pour attacher le modèle aux données de formulaire dans les données de formulaire en JavaScript, le modèle est généralement sérialisé sous forme de chaîne, résultant en une représentation "

".

formdata.append("model", model) Solution: FormData Serialization [object object]

Afin de surmonter ce problème, veuillez utiliser la fonction de construction FormData comme suit le modèle de sérialisation:

Cette méthode sérialisera automatiquement les modèles et tout fichier généré par élément

.

<code class="language-javascript">var formdata = new FormData($('form').get(0));</code>
a publié les données de formulaire sur le contrôleur

<input type="file">

Utilisez Ajax pour publier des données de formulaire sérialisées au contrôleur:

Sur le côté du contrôleur, définissez une opération pour recevoir les données de formulaire:

Si votre modèle n'inclut pas
<code class="language-javascript">$.ajax({
  url: '@Url.Action("YourActionName", "YourControllerName")',
  type: 'POST',
  data: formdata,
  processData: false,
  contentType: false,         
});</code>
Attributs, veuillez utiliser l'opération suivante Large lourde:

<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model)
{
}</code>
Ajouter d'autres attributs

HttpPostedFileBase

Si nécessaire, vous pouvez utiliser les méthodes suivantes pour attacher d'autres attributs aux données du formulaire:
<code class="language-csharp">[HttpPost]
public ActionResult YourActionName(YourModelType model, HttpPostedFileBase myImage)
{
}</code>

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