Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

Rendu d'un formulaire à l'aide de programmes d'assistance HTML

L'infrastructure ASP.NET MVC inclut des méthodes d'assistance qui offrent un moyen simple pour la génération du rendu HTML dans une vue. Cette rubrique explique comment utiliser les programmes d'assistance HTML les plus courants. La dernière section présente un exemple qui incorpore les programmes d'assistance HTML décrits dans cette rubrique.

La liste suivante répertorie certains des programmes d'assistance HTML actuellement disponibles. Les programmes d'assistance répertoriés avec un astérisque (*) sont présentés dans cette rubrique.

  • ActionLink  : établit un lien vers une méthode d'action.

  • BeginForm * : marque le début d'un formulaire et établit un lien vers la méthode d'action qui restitue le formulaire.

  • CheckBox * : restitue une case à cocher.

  • DropDownList * : restitue une liste déroulante.

  • Hidden  : incorpore les informations du formulaire qui ne sont pas restituées pour que l'utilisateur puisse les consulter.

  • ListBox  : restitue une zone de liste.

  • Password  : restitue une zone de texte pour l'entrée d'un mot de passe.

  • RadioButton * : restitue une case d'option.

  • TextArea  : restitue un espace de texte (zone de texte multiligne).

  • TextBox * : restitue une zone de texte.

Le programme d'assistance BeginForm marque le début d'un formulaire HTML et génère le rendu sous la forme d'un élément form HTML. La méthode d'assistance BeginForm comporte plusieurs substitutions. La version du programme d'assistance BeginForm présentée dans l'exemple suivant accepte deux paramètres, le nom de la méthode d'action et le contrôleur permettant d'envoyer le formulaire. Le programme d'assistance BeginForm implémente l'interface IDisposable, qui vous permet d'employer le mot clé using (Using en Visual Basic), d'une manière similaire à l'utilisation d'ASP.NET AJAX.

L'exemple suivant indique comment utiliser le programme d'assistance BeginForm dans un modèle using.

<% using(Html.BeginForm("HandleForm", "Home")) %>
<% { %>
    <!-- Form content goes here -->
<% } %>

Vous pouvez également employer de façon déclarative le programme d'assistance BeginForm. La différence entre l'utilisation déclarative de BeginForm et l'emploi d'une balise form HTML réside dans le fait que BeginForm assigne une valeur par défaut pour la méthode d'action et les attributs d'action, ce qui simplifie le balisage. L'exemple suivant utilise le balisage déclaratif pour marquer le début et la fin d'un formulaire.

<% Html.BeginForm(); %>
    <!-- Form content goes here -->
<% Html.EndForm(); %>

La méthode d'assistance CheckBox restitue une case à cocher portant le nom que vous spécifiez. Le contrôle restitué retourne une valeur booléenne (true ou false). L'exemple suivant présente le balisage de la méthode d'assistance CheckBox.

<%= Html.CheckBox("bookType") %>

Le programme d'assistance DropDownList restitue une liste déroulante. Dans sa forme la plus simple, DropDownList accepte un paramètre, le nom de la clé ViewData dont la valeur est de type SelectList et qui contient les valeurs d'option de la liste déroulante. L'infrastructure MVC utilise la propriété ModelState de ViewData pour déterminer la valeur sélectionnée. Si la propriété ModelState est vide, l'infrastructure recherche un élément dont la propriété Selected est définie.

L'exemple suivant présente le balisage de la méthode d'assistance DropDownList.

<%= Html.DropDownList("pets") %>
RemarqueRemarque :

Les programmes d'assistance ListBox et DropDownList acceptent un objet SelectList ou MultiSelectList.

Le code suivant fait partie d'une méthode d'action Index dans laquelle des valeurs sont ajoutées à un objet List. L'objet List est passé à une instance de SelectList, qui est ensuite ajoutée à l'objet ViewData.


List<string> petList = new List<string>();
petList.Add("Dog");
petList.Add("Cat");
petList.Add("Hamster");
petList.Add("Parrot");
petList.Add("Gold fish");
petList.Add("Mountain lion");
petList.Add("Elephant");

ViewData["Pets"] = new SelectList(petList);


La méthode d'assistance RadioButton restitue une case d'option. Dans sa forme la plus simple, la méthode accepte trois paramètres : le nom du groupe de contrôles, la valeur d'option et une valeur Boolean qui détermine si la case d'option est sélectionnée initialement. Le balisage suivant correspond à celui de la méthode d'assistance RadioButton.

Select your favorite color:<br />
<%= Html.RadioButton("favColor", "Blue", true) %> Blue <br />
<%= Html.RadioButton("favColor", "Purple", false)%> Purple <br />
<%= Html.RadioButton("favColor", "Red", false)%> Red <br />
<%= Html.RadioButton("favColor", "Orange", false)%> Orange <br />
<%= Html.RadioButton("favColor", "Yellow", false)%> Yellow <br />
<%= Html.RadioButton("favColor", "Brown", false)%> Brown <br />
<%= Html.RadioButton("favColor", "Green", false)%> Green

La méthode d'assistance TextBox restitue une zone de texte portant le nom spécifié. Le balisage suivant correspond à celui de la méthode d'assistance TextBox.

Enter your name: <%= Html.TextBox("name") %>

L'exemple suivant est un exemple complet dont les exemples précédents ont été extraits. La page Index affiche un formulaire qui implémente des méthodes d'assistance HTML. Lorsque l'utilisateur envoie le formulaire, ce dernier est géré par la méthode d'action HandleForm, qui génère une vue affichant les informations envoyées par l'utilisateur.

L'exemple suivant présente la classe HomeController.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcHtmlHelpers.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            ViewData["Message"] = "Welcome to ASP.NET MVC!";

            List<string> petList = new List<string>();
            petList.Add("Dog");
            petList.Add("Cat");
            petList.Add("Hamster");
            petList.Add("Parrot");
            petList.Add("Gold fish");
            petList.Add("Mountain lion");
            petList.Add("Elephant");

            ViewData["Pets"] = new SelectList(petList);

            return View();
        }

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

        public ActionResult HandleForm(string name, string favColor, Boolean bookType, string pets)
        {
            ViewData["name"] = name;
            ViewData["favColor"] = favColor;
            ViewData["bookType"] = bookType;
            ViewData["pet"] = pets;

            return View("FormResults");
        }
    }
}


L'exemple suivant présente la vue Index.


<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<br /><br />
<% using(Html.BeginForm("HandleForm", "Home")) %>
<% { %>
    Enter your name: <%= Html.TextBox("name") %>
    <br /><br />
    Select your favorite color:<br />
    <%= Html.RadioButton("favColor", "Blue", true) %> Blue <br />
    <%= Html.RadioButton("favColor", "Purple", false)%> Purple <br />
    <%= Html.RadioButton("favColor", "Red", false)%> Red <br />
    <%= Html.RadioButton("favColor", "Orange", false)%> Orange <br />
    <%= Html.RadioButton("favColor", "Yellow", false)%> Yellow <br />
    <%= Html.RadioButton("favColor", "Brown", false)%> Brown <br />
    <%= Html.RadioButton("favColor", "Green", false)%> Green 
    <br /><br />
    <%= Html.CheckBox("bookType") %> I read more fiction than non-fiction.<br />
    <br /><br />
    My favorite pet: <%= Html.DropDownList("pets") %>
    <br /><br />
    <input type="submit" value="Submit" />
<% } %>


L'exemple suivant présente la vue FormResults.


<h2>FormResults</h2>
<p>
Your name: <b><%= Html.Encode(ViewData["name"])%></b>
</p>
<p>
Your favorite color: <b><%= Html.Encode(ViewData["favColor"]) %></b>
</p>
<% if (ViewData["bookType"].Equals(true))
   { %>
<p>You read more <b>fiction</b> than non-fiction.</p>
<% }
   else
   { %>
<p>You read more <b>non-fiction</b> than fiction.</p>
<% } %>
Your favorite pet: <b><%= Html.Encode(ViewData["pet"]) %></b>


Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft