2013-05-14 1 views
3

Comment puis-je avoir un bouton de soumission dans chaque rangée d'une «grille», où, lorsque ce bouton est cliqué, je peux poster trois éléments de données dans la ligne au contrôleur?MVC 4 bouton Soumettre dans chaque ligne d'une «grille» - comment?

Voici le scénario:

Un écran montre les utilisateurs de mon système dans une table html « grille ». Un lien dans chaque ligne indique "Associate Customer". Cela va à un autre écran montrant une liste de clients auxquels cet utilisateur peut être associé. Leur UserID est dans l'URL comme AssociateCustomer/14

Sur le deuxième écran, je veux afficher dans une grille html, CustomerID, CustomerName, et un lien/bouton qui soit:

  1. Says "associé" si elles ne sont pas associés à ce client, ou
  2. Says « dissocier » si elles sont déjà associées à ce client

je suis arrivé que le travail beaucoup, mais je ne sais pas la partie suivante: lorsque la l'utilisateur clique sur un bouton de la grille, je dois passer CustomerID, le ID utilisateur et "Associer/Dissocier" au contrôleur. Comment puis-je faire cela d'une manière MVC?

+0

Envisagez de créer un lien d'action avec querystrings au lieu de soumettre le pour lui-même. –

Répondre

2

En général, vous ne publiez pas le formulaire dans ce cas.

Je créerais des actions Associer et Dissocier dans votre contrôleur qui acceptent les paramètres dont vous avez besoin en tant que chaîne de requête. Créez ensuite un lien Action pour chaque ligne de votre grille qui crée l'URL appropriée.

3

Quelque chose comme:

@ Html.ActionLink("Click Me!","Associate","SomeController",new{userId=item.UserID,customerID=item.CustomerID}) 

Vous ne devez pas poster le formulaire pour faire ce que vous demandez (bien que ce serait une façon de le faire).

+0

La syntaxe avec "SomeController" n'a pas fonctionné mais c'est ce que j'ai fait: Html.ActionLink (item.Tag, "Associate", new {id = item.UserID, CustomerID = item.I_Customer.Trim(), Verb = item.Tag}). Chaque "item.field" a un signe "at" avant – Geminirand

Questions connexes