Contenu de formulaire dynamic ASP.NET MVC & JQuery

Je voudrais append dynamicment des champs à un formulaire ASP.NET MVC avec JQuery.

Exemple:

 var widgets; $(document).ready(function() { widgets = 0; AddWidget(); }); function AddWidget() { $('#widgets').append("
  • "); widgets++; }

    Cela fonctionne, mais je voulais itérer manuellement les valeurs de formulaire dans le contrôleur:

     [AcceptVerbs("Post")] public ActionResult AddWidget(FormCollection form) { foreach (ssortingng s in form) { ssortingng t = form[s]; } return RedirectToAction("ActionName"); } 

    Mais je me suis dit que lorsque je renverrais l’utilisateur à l’action Get du contrôleur, je devrais définir le FormData avec les valeurs entrées, puis append les widgets de manière itérative avec <% scripting.

    Quelle est la meilleure façon de faire cela dans la version actuelle (5 je crois)?

    Ma solution pourrait ressembler à ceci (pseudo-code):

      

    Et dans le contrôleur:

     [AcceptVerbs("Post")] public ActionResult AddWidget(FormCollection form) { dim collValues as new Collection; foreach (ssortingng s in form) { ssortingng t = form[s]; collValues.add( t ) } ViewData("WidgetValues") = collValues; return RedirectToAction("ActionName"); } 

    Vous pouvez régler les détails plus tard
    (désolé d’avoir mélangé VB avec C #, je suis un gars de VB)

    Il se peut que je manque le point ici, mais avez-vous besoin de poster les données au contrôleur via une action de formulaire? pourquoi ne pas faire un appel ajax en utilisant jquery pour envoyer les données au contrôleur … ou mieux encore, un service Web? envoyer les données en async et il n’est pas nécessaire de reconstruire la vue avec les valeurs de données envoyées.

    Cela fonctionne correctement si les valeurs sont consommées et ne sont plus jamais utilisées. Toutefois, si vous prévoyez de conserver les données et de les faire défiler dans la vue, votre modèle doit réellement prendre en charge la structure de données. Peut-être un Dictionary sur le modèle.

    Je ne suis pas un développeur ASP.net, mais je sais en PHP que vous pouvez utiliser des tableaux comme noms de champs de saisie

    Ex:

       

    Vous pouvez ensuite parcourir les widgets de variable de publication comme s’il s’agissait d’un tableau de valeurs.

    Pas de déconner avec des variables nommées dynamicment, etc.

    Autant que je sache, le problème est de préserver les valeurs affichées dans les widgets. Je pense que vous pouvez simplement rendre les widgest que vous ne peuplerez pas sur le serveur lors du rendu de la vue.

    Voici la bonne réponse:

    Asp.Net C # MVC Dynamic Forms (Modification de la structure du dom et obtention de données sur le serveur)