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

Affichages et rendu d'interface utilisateur dans les applications ASP.NET MVC

L'infrastructure ASP.NET MVC prend en charge l'utilisation d'un moteur d'affichage pour la génération des vues (interface utilisateur). Par défaut, l'infrastructure MVC utilise des types personnalisés (ViewPage, ViewMasterPageet ViewUserControl) qui héritent des types de page ASP.NET (.aspx), de page maître (.master) et de contrôle utilisateur (.ascx) existants en tant que vues.

Dans le workflow standard d'une application Web MVC, les méthodes d'action de contrôleur gèrent une requête Web entrante. Ces méthodes d'action utilisent les valeurs de paramètre entrantes pour exécuter le code de l'application, et récupérer ou mettre à jour les objets de modèle de données d'une base de données. Les méthodes sélectionnent ensuite une vue qui restitue une réponse à un navigateur.

Dans le modèle MVC (Model-View-Controller), les vues sont conçues exclusivement pour l'encapsulation de la logique de présentation. Elles ne doivent pas contenir de logique d'application ni de code de récupération de base de données. Toute la logique d'application doit être gérée par le contrôleur. Une vue restitue l'interface utilisateur appropriée au moyen des données qui lui sont passées par le contrôleur. Ces données sont passées à une vue à partir d'une méthode d'action de contrôleur à l'aide de la méthode View.

RemarqueRemarque :

Le dossier Views est l'emplacement recommandé pour les vues dans la structure de projet Web MVC.

L'exemple suivant montre comment une vue est restituée dans une classe de contrôleur.

public ActionResult Categories()
{
    List<Category> categories = northwind.GetCategories();
    return View(categories);
}

Dans l'exemple, le paramètre passé dans l'appel de méthode View est une liste d'objets Category transmis à la vue. La méthode View appelle le moteur d'affichage, qui utilise les données de la liste pour procéder au rendu dans la vue et à l'affichage dans le navigateur.

Une page de vue est une instance de la classe ViewPage. Elle hérite de la classe Page et implémente l'interface IViewDataContainer. La classe ViewPage définit une propriété ViewData qui retourne un objet ViewDataDictionary. Cette propriété contient les données que la vue doit afficher.

Vous pouvez créer une page de vue à l'aide des modèles fournis dans un projet Visual Studio pour une application Web ASP.NET. Par défaut, les vues sont des pages Web ASP.NET restituées par l'infrastructure MVC. L'infrastructure MVC utilise le routage d'URL pour déterminer l'action de contrôleur à appeler. L'action de contrôleur détermine ensuite les vues à restituer.

L'exemple suivant illustre le balisage de la page Index.aspx. Cette page est l'une des vues par défaut générées lors de la création d'un projet MVC dans Visual Studio. Par convention, le nom "Index" est attribué à la vue par défaut d'une application ASP.NET MVC.


<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>


La directive @ Page contient l'attribut Inherits qui définit la relation entre l'application et la vue. Par défaut, la valeur de l'attribut Inherits utilise le modèle suivant : Application.Views.Controller.ViewPage

Si vous employez une vue fortement typée, l'attribut Inherits utilise le modèle suivant :

Application.Views.Controller.ViewPage<Type>

Tout comme les pages ASP.NET des applications basées sur des Web Forms, les vues de page ASP.NET (fichiers .aspx) peuvent utiliser des pages maîtres pour définir une disposition et une structure cohérentes. Dans un site standard, la page maître est liée à une page de contenu dans la directive @ Page de la page de contenu. Vous pouvez également utiliser des pages maîtres dynamiques (ce qui signifie que vous pouvez assigner une page maître lors de l'exécution) lorsque vous appelez la méthode View de la classe Controller.

L'exemple suivant présente la vue Site.master, qui est la page maître générée lorsque vous créez un projet MVC dans Visual Studio.


<%@ Master Language="VB" Inherits="System.Web.Mvc.ViewMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

<body>
    <div class="page">

        <div id="header">
            <div id="title">
                <h1>My MVC Application</h1>
            </div>

            <div id="logindisplay">
                <% Html.RenderPartial("LogOnUserControl")%>                
            </div> 

            <div id="menucontainer">

                <ul id="menu">              
                    <li><%= Html.ActionLink("Home", "Index", "Home")%></li>
                    <li><%=Html.ActionLink("About", "About", "Home")%></li>
                </ul>

            </div>
        </div>

        <div id="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />

            <div id="footer">
            </div>
        </div>
    </div>
</body>
</html>



<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
    <link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
</head>

<body>
    <div class="page">

        <div id="header">
            <div id="title">
                <h1>My MVC Application</h1>
            </div>

            <div id="logindisplay">
                <% Html.RenderPartial("LogOnUserControl"); %>
            </div> 

            <div id="menucontainer">

                <ul id="menu">              
                    <li><%= Html.ActionLink("Home", "Index", "Home")%></li>
                    <li><%= Html.ActionLink("About", "About", "Home")%></li>
                </ul>

            </div>
        </div>

        <div id="main">
            <asp:ContentPlaceHolder ID="MainContent" runat="server" />

            <div id="footer">
            </div>
        </div>
    </div>
</body>
</html>


Une vue partielle vous permet de définir une vue qui sera restituée dans une vue parent. Les vues partielles sont implémentées en tant que contrôles utilisateur ASP.NET (.ascx).

Lorsqu'une vue partielle est instanciée, elle obtient sa propre copie de l'objet ViewDataDictionary qui est disponible pour la vue parent. La vue partielle a par conséquent accès aux données de la vue parent. Toutefois, si la vue partielle met à jour les données, ces mises à jour affectent uniquement l'objet ViewData qui lui est associé. Les données de la vue parent ne sont pas modifiées.

Lorsque vous créez des vues, de nombreuses tâches s'avèrent répétitives ou requièrent une connaissance particulière de l'infrastructure MVC. Pour gérer ces scénarios et faciliter la génération du rendu HTML, l'infrastructure MVC inclut des classes et membres d'assistance. La conception des classes d'assistance est extensible de façon à permettre l'ajout de classes et de membres d'assistance personnalisés.

L'infrastructure MVC inclut les programmes d'assistance suivants :

  • Programmes d'assistance de formulaire conçus pour des éléments de formulaire tels que les cases d'option, les zones de liste, les boutons de sélection, les zones de texte, les espaces de texte, le contenu masqué et les champs de mot de passe.

  • Programmes d'assistance d'URL permettant de générer des URL pour le routage.

  • Programmes d'assistance HTML incluant des fonctions pour la gestion des chaînes HTML (par exemple, Encode, Decode, AttributeEncodeet RenderPartial).

Vous pouvez accéder aux programmes d'assistance de rendu basés sur du code à l'aide des propriétés qui sont ajoutées aux classes ViewPage, ViewUserControl et ViewMasterPage.

Titre

Description

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

Explique comment utiliser les méthodes d'assistance HTML pour restituer un formulaire dans une vue.

Passage de données dans une application ASP.NET MVC

Explique comment passer les données d'un contrôleur à une vue.

Procédure pas à pas : utilisation de programmes d'assistance basés sur un modèle pour afficher des données dans ASP.NET MVC

Illustre une méthode permettant de générer automatiquement une interface utilisateur basée sur un modèle de données.

Création d'une vue ASP.NET MVC en appelant plusieurs actions

Explique comment créer une vue parent qui contient plusieurs vues enfant.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft