L'Événement bouton dans ASP.NET MVC
J'ai créé la page d'affichage de MVC comme
<%using (Html.BeginForm())
{ %>
<%=LabelHelpers.Label("firstname", "FirstName:")%>
<br/>
<%=Html.TextBox("firstname")%>
<br/><br/>
<%=LabelHelpers.Label("lastname", "Lastname:")%>
<br/>
<%=Html.TextBox("lastname")%>
<br/><br/>
<input type="Button" value="Register"/>
<%} %>
Ici je veux écrire Buttonclick Événement ...Comment et Où dois-je écrire?
OriginalL'auteur Domnic | 2011-01-18
Vous devez vous connecter pour publier un commentaire.
Votre entrée est de type
button
- cela ne peut pas faire n'importe quoi sans autre côté client code.Si vous souhaitez gérer l '"événement" sur le serveur de la même manière que vous auriez dans ASP.NET, vous devez le convertir en un bouton de soumission. En supposant que votre contrôleur est appelé "Compte" et votre action est appelée "s'Enregistrer" votre actuel code ressemblerait quelque chose comme ceci:
Vous voulez commencer par le passage d'un modèle à l'affichage:
Votre vue actuelle est à l'aide faiblement typé entrées. Puisque vous êtes en passant un modèle que vous pouvez utiliser des points de vue fortement typée. Votre modèle doit ressembler à quelque chose comme ceci:
À utiliser des points de vue fortement typée, changer votre point de vue à ressembler à ceci:
Ce que nous avons fait, c'est dit à la vue de construire des étiquettes et des zones de texte pour votre RegisterModel type. Cela permettra aux valeurs de modèle pour être mappées automatiquement lorsque vous validez le formulaire pour le contrôleur.
Faire accepter le poste, nous avons besoin d'ajouter une nouvelle Action à la manette, avec le même nom, mais en acceptant un paramètre de type RegisterModel:
Une dernière chose à faire, pour être sûr, est d'ajouter de la
[HttpGet]
et[HttpPost]
attributs de vos actions de contrôleur pour contrôler les méthodes qu'ils acceptent:et
Je vous suggère de lire sur MVC à http://www.asp.net/mvc et de lire les NerdDinner tutoriel en Professionnel MVC (disponible gratuitement en ligne au format PDF).
OriginalL'auteur Michael Shimmins
rejoindre à la question, vous voulez le rendre plus concret
j'ai un formulaire, le formulaire a déjà un bouton de soumission, mais j'ai besoin de lier une action supplémentaire à un autre bouton.
oui, je sais que MVC ne prend pas en charge les événements de causer des formulaires HTML ne les supporte pas.
donc la solution que j'ai est venu est de créer caché entrées à l'intérieur de la forme et le lier à une "onclick" de l'événement (jquery "live" de la méthode) pour chaque... oh, ce que l'enfer? voici le code:
html:
js:
mais peut-être qu'il est plus élégant de la solution?
OriginalL'auteur Arthur