Loïc Bar
Introduction à ASP.NET MVC
Dans cet article, vous découvrirez tout ce que vous devez savoir pour créer un site web à l’aide de la technologie ASP.NET MVC.
Par Loïc Bar publié le 10/05/2009 à 21:19, lu 6864 fois, 12 pages
 7 | ViewData
Nous avons vu apparaître cet élément juste au-dessus. Comme sont nom l’indique, cet objet prend toutes les données dont doit disposer la vue. Si nous prenons notre premier exemple, nous passons une chaine de caractère à notre ViewData :

< h1 > <% = Html.Encode(ViewData["Message"]) %></h1>

Ce message sera utilisé de manière très simple dans la vue :

< h2 > <% = Html.Encode(ViewData["Message"]) %></h2>

Le ViewData par défaut fait correspondre des clefs à des valeurs (hashtable). Le ViewData se passe directement à la vue. Il n’a pas besoin d’être passé en paramètre.
Le problème de cette technique est que les données ne sont pas typées. Nous pouvons mettre tout et n’importe quoi dans ce ViewData. ASP.NET MVC laisse la possibilité aux développeurs de créer des ViewData typé.
Pour cela, il faut renseigner à la vue quel type de données elle va recevoir :

<% @ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"

    Inherits="System.Web.Mvc.ViewPage<THB_MVC.Models.ViewDataHello>" %>

Nous voyons que la page hérite d’un ViewPage typé cette fois-ci. Le type est une classe que nous avons définie dans notre modèle :

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

 

namespace THB_MVC.Models

{

    public class ViewDataHello

    {

        public string HelloMsg { get; set; }

 

    }

}

Nous voyons que nous avons un HelloMsg de type string. Nous pouvons passer ce ViewData à notre vue dans le contrôleur :

public ActionResult Hello(){

            ViewDataHello msg = new ViewDataHello();

            msg.HelloMsg = "Welcome to ASP.NET MVC!";

            return View(msg);

        }

L’utilisation au sein de la page est très facile :

<% @ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"

    Inherits="System.Web.Mvc.ViewPage<THB_MVC.Models.ViewDataHello>" %>

 

< asp : Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">

    Hello

</ asp : Content >

 

< asp : Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

 

    <h2><%= Model.HelloMsg %></h2>

 

</ asp : Content >

Nous utilisons l’instance de notre ViewData que MVC nomme Model (à juste titre) pour pouvoir afficher la valeur de notre propriété HelloMsg.
 
» Démarrer une discussion
 
Discussion démarée par killscores le 18/05/2009 à 12:12, 1 commentaire(s).