2010-04-12 3 views
4

Je crée une application asp.net MVC dans laquelle je veux fournir une fonctionnalité pour ajouter un contrôle dynamiquement. J'ai un formulaire dans lequel il y a 2 zones de texte pour le prénom et le nom qui servent de contrôle unique. Maintenant, un utilisateur peut ajouter n'importe quel nombre de ce groupe de contrôles. Je suis capable d'ajouter ces contrôles sur la page en utilisant le script java. Mais je ne sais pas comment accéder aux valeurs de ces contrôles lorsque l'utilisateur soumet.Ajouter dynamiquement des contrôles sur un clic de bouton dans asp.net mvc

S'il vous plaît aider dans cette démarche ou suggérer une autre

Merci

Répondre

2

avoir une lecture de l'article Editing a variable length list, ASP.NET MVC 2-style par Steve Sanderson. Il vous montre comment faire ce que vous cherchez dans un style propre, MVC.

+0

Y at-il des solutions plus récentes et plus efficaces? ça fait 4 ans ?? –

2

regarder à l'aide d'un appel Jquery AJAX pour l'opération d'envoi.

Vous pouvez interagir à travers vos contrôles (facile avec jquery class selector et $ .each) et pousser les variables dans une variable js. Analysez JSON et transmettez les données au contrôleur en utilisant l'appel ajax.

1

Si vous venez d'une perspective webforms, vous avez l'habitude d'ajouter ces nouveaux contrôles par programme dans le codebehind. En utilisant ASP.NET MVC, vous feriez mieux de le faire avec javascript.

Il devrait être trivial d'écrire une fonction javascript qui ajoute FirstName1, FirstName2, FirstName3, etc. Dans le contrôleur, inspectez le Request.Form.AllKeys pour déterminer combien de champs ont été ajoutés par l'utilisateur.

Vous pouvez également itérer un certain nombre dans un champ caché appelé « txtNumFields », utilisez alors que votre valeur de contrôle dans une boucle:

int numFields = int.Parse(Request.Form["txtNumFields"]); 
for (i==0;i<numFields ;i++) 
{ 
    string firstName = Request.Form["FirstName" + i.ToString()]; 
    ... 
} 
+0

Merci Dave, j'ai essayé cette approche mais Request.Form.AllKeys est toujours 0. Il ne montre aucun contrôle que j'ai ajouté en utilisant javascript. De l'aide? –

+0

C'est le problème, car Request.Form.AllKeys.Count est toujours 0. Je ne peux donc accéder à aucun élément de mon contrôleur. –

+0

Définissez-vous un identifiant sur chaque champ de formulaire? Vous devez également vous assurer que le bouton est de type = submit, et que l'action doit pouvoir accepter un POST (décorer la méthode Action avec [HttpPost] –

Questions connexes