2010-06-01 8 views
0

Je suis nouveau à MVC, et en essayant quelque chose et suis resté quelque part entre les deux.Passer des données de Usercontrol au contrôleur

J'ai un contrôle utilisateur là-bas J'ai trois type de texte de type html (ID, nom, prénom) et un buttom de soumission.

Je mis le bouton comme

<input type="button" value="Search" 
       onclick="location.href='<%= Url.Action("action", "controller") %>'" /> 

J'ai appelé ce usercontrol sur une vue à travers

<%= Html.Partial("ucName") %> 

maintenant En appuyant sur ce bouton (sur le contrôle de l'utilisateur) Je dois transmettre les données de ces les zones de texte au contrôleur à nouveau à une action spécifique (action Http Post). En utilisant ces données, je veux faire une certaine interaction avec la base de données et stocker le résultat dans un ensemble de données et transmettre à nouveau cet ensemble de données à la même vue pour apparaître dans certaines Grilles.

Je sais que la première partie de Asp.net classique peut être faite en augmentant l'événement par le biais de délégué, mais ne savez pas comment le faire dans MVC.

Répondre

0

Dans votre action, vous devriez avoir;

public ActionResult(MyModel model) 
{ 
    //now do something with model 
} 

Débarrassez du bouton et utiliser un bouton d'envoi à la place, puis utiliser BeginForm afin qu'il soumettra à la même action et contrôleur. MyModel doit contenir les trois champs et votre modèle doit également hériter de MyModel afin que MVC sache d'où les données proviennent.

Avez-vous déjà parcouru l'exemple NerdDinner, car il semble que ce ne soit pas le cas. vous devez le faire en premier pour avoir une idée de la façon dont les modèles MVC et la vue fonctionnent.

0

Ne peut pas vous suffit d'utiliser un bouton submit qui publier des données sur l'action du contrôleur souhaité:

<% using (Html.BeginForm("action", "controller", FormMethod.Post)) { %> 
    <!-- ... your textboxes here ... --> 
    <input type="submit" value="Search" /> 
<% } %> 

Vous pouvez également utiliser FormMethod.Get si vous voulez que les paramètres à passer dans l'url.

+0

J'ai mis le même code dans mon usercontrol mais sur soumettre il n'appelle pas le contrôleur, peut être parce que c'est un contrôle d'utilisateur mais que je veux. Je veux mettre les boîtes de texte et le bouton dans un usercontrol. – Nits

Questions connexes