2009-06-11 8 views
1

Je suis nouveau à ASP .NET MVC et à la programmation Web en général.ASP .NET MVC: Html.Radiobutton onclick - set ViewData [""]

Je me demande s'il existe un moyen de définir les variables ViewData lorsqu'un bouton radio est sélectionné - mais avant que la page ne soit soumise. Peut-être que je suis aboyant le mauvais arbre, mais ce que je suis en train de faire est de créer un formulaire où de nouveaux champs sont ajoutés selon le bouton radio est sélectionné. Donc, ce que je veux faire, c'est quand un bouton radio est cliqué, il définit une variable ViewData et une vue partielle différente en fonction de cette variable ViewData charge les champs appropriés ci-dessous le champ en cours.

j'imagine qu'il doit y avoir someway de faire un onclick = "une fonction C# qui définit ViewData (args)"

Merci

Répondre

2

Il y a plusieurs façons de procéder.

1) Vous pouvez avoir une forme Ajax où via Javascript vous postez le formulaire et vérifiez s'il s'agit d'une requête Ajax, en retournant une vue partielle à une div que vous spécifiez.

2) Publiez le formulaire tel quel et vérifiez côté serveur pour voir si le bouton radio a été cliqué, et ainsi réafficher le formulaire avec les nouvelles options visibles.

Si vous prenez la première approche, il serait assez facile de passer à la seconde pour ceux sans Javascript activé.

Il n'y a pas vraiment d'événements "onclick" comme je suppose que vous êtes habitué à partir de Webforms, vous devez essentiellement lancer votre propre Javascript pour gérer de telles choses. Une fois que vous en aurez quelques-uns, je pense que vous constaterez que ce n'est vraiment pas trop mal, avec l'avantage que vous aurez plus de contrôle sur ce que vous faites et grâce à cela vous aurez une meilleure compréhension de la situation dans son ensemble.

2

ViewData existe seulement, et existe seulement côté serveur, pour la durée de vie la demande. Ainsi, une fois la page rendue, l'objet n'existe plus.

Certains alternent vous pouvez prendre des approches:

1 - Utiliser côté client JavaScript pour ajouter une forme et entrées au besoin. Plus d'informations ici: ASP.NET MVC & JQuery Dynamic Form Content

2 - Pré-rendu le nouveau formulaire, mais cachez-le via CSS, et affichez-le lorsque vous cliquez sur le bouton radio approprié. Plus d'informations ici: expand collapse html field Firefox

3 - Utilisez AJAX pour rendre le nouveau formulaire lorsque vous cliquez sur le bouton radio approprié. Plus d'infos ici: http://www.asp.net/learn/mvc/tutorial-32-cs.aspx

Questions connexes