2010-09-12 3 views
0

Je suis relativement nouveau sur ASP.NET. J'ai un projet d'application Web ASP.NET MVC 2 (créé dans Visual Studio 2010). J'ai ajouté une méthode pour HomeController appelée RechercheL'événement ASP.NET Button Click ne semble pas se déclencher

public ActionResult Search() 
{ 
    return View(); 
} 

et a créé une vue correspondante (page web) appelé Search.aspx sur lequel je laissai tomber sur un bouton. J'ai double-cliqué sur le bouton pour ajouter un gestionnaire pour l'événement de clic de bouton qui définit le texte d'un TextBox, puis construit l'application.

<script runat="server"> 


protected void MyButton1_Click(object sender, EventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("Undo button clicked"); 
    m_search_text_box.Text = "MyButton1_Click"; 
} 

...

Lorsque je clique sur le bouton dans mon navigateur (J'ai testé dans Chrome et Internet Explorer), rien ne se passe. La zone de texte n'est pas mise à jour. Rien n'est écrit dans la fenêtre de sortie non plus. Donc, il ne semble pas que l'événement se déclenche. Quelqu'un peut-il offrir des suggestions? J'utilise Visual Studio 2010 sous Windows 7.

Merci

Répondre

2

Vous mixez événement WebForms manipulation dans une application MVC. MVC ne fonctionne pas comme WebForms. Consultez le tutorials on MVC2 pour vous aider à démarrer sur le bon chemin.

Voici un sample app avec des didacticiels étape par étape pour vous aider à accéder aux bases du MVC. ASP.NET MVC n'utilise pas le code derrière les gestionnaires comme ça.

+0

Merci pour le lien. Je vérifierai. – David

0

Vous utilisez les actions du contrôleur pour répondre aux demandes et décidez comment les gérer visuellement (par exemple: vous pouvez afficher une vue ou renvoyer un objet JSON, ou rediriger vers une autre action, etc.). Dans votre exemple, si vous voulez mettre du texte dans une zone de texte après que l'utilisateur a cliqué sur le bouton, vous devez placer un bouton Envoyer dans un formulaire et créer une action du contrôleur pour y répondre:

[HttpPost] 
public ActionResult Search() 
{ 
    var model = new SearchModel(); 
    model.StatusText = "MyButton1_Click"; 

    return View(model); 
} 

à votre avis, vous voulez utiliser ce modèle, et de mettre la valeur de la propriété StatusText dans une zone de texte:

<%= Html.TextBoxFor(x => x.StatusText) %> 

Jetez un oeil à the ASP.NET MVC website qui a beaucoup de grands obtenir des tutoriels commencé, et le tuto Nerd Dinner rial (un chapitre gratuit dans le livre).

Questions connexes