ASP.NET MVC : comment passer la valeur d'une textbox au contrôleur ?

Le programme "BeginForm" génère le début d'un formulaire, et permet de faire le lien avec la méthode de validation d'un contrôleur.

Dans le langage ASP.NET, les formulaires ne sont pas gérés de la même façon qu'un formulaire HTML classique.

Certaines balises HTML peuvent être remplacées par des programmes d'assistance HTML. Ces programmes génèrent directement le code HTML, et interagissent avec les contrôleurs. Le programme "BeginForm" génère le début d'un formulaire, et permet de faire le lien avec la méthode de validation d'un contrôleur. Il existe également d'autres programmes pour générer des champs, des listes ou encore des cases à cocher.

//Vue
@using (Html.BeginForm("Recherche", "Application"))
{
 //Champ texte de recherche
 @Html.TextBox("texte")
 //Input de validation (n'est pas généré par un programme d'assistance)
 <input type="submit" value="Rechercher" />
}
//Contrôleur
public class ApplicationController: Controller
{
 public ActionResult Recherche(string texte)
 {
 //Traitement à exécuter
 return View(); //Affiche la vue "Recherche" à l'utilisateur
 }
}

Grâce à ces programmes d'assistance, il est possible de travailler sur des cas plus complexes. On peut par exemple créer un formulaire dont les valeurs vont être directement utilisées pour renseigner une instance d'un objet du modèle. Le formulaire suivant permet de rechercher un utilisateur :

//Vue
@model Utilisateur
@using (Html.BeginForm("Recherche", "Application"))
{
@Html.TextBoxFor(u => u.prenom)
@Html.TextBoxFor(u => u.nom)
<input type="submit" value="Rechercher" />
}
//Modèle
public class Utilisateur
{
public string prenom { get; set; }
public string nom { get; set; }
}
//Contrôleur
public class ApplicationController: Controller
{
public ActionResult Recherche(Utilisateur u)
{
//Traitement à exécuter
return View();//Affiche la vue "Recherche" à l'utilisateur
//return View(model); //La vue peut être retournée avec l'utilisateur
//return View("nomVue"); //On peut également retourner une autre vue en indiquant son nom
}
}

Divers