IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Démystifier le modèle MVC des applications ASP.NET Core -
Partie 2 : transfert de données entre le contrôleur et la vue, par Hinault Romaric

Le , par Hinault Romaric

0PARTAGES

Démystifier le modèle MVC des applications ASP.NET Core, partie 2 : transfert de données entre le contrôleur et la vue

Dans la partie précédente, nous avons mis en place le pattern MVC dans notre application en utilisant le framework ASP.NET MVC Core. Nous nous sommes familiarisés avec des concepts clés comme le routage, les middlewares, etc.


Toutefois, dans notre page d’Index, nous n’affichons aucun contenu provenant du contrôleur. Dans cette partie, nous verrons quelques mécanismes pour passer des données du contrôleur vers la vue.

Transferts des données du contrôleur vers la vue

ASP.NET MVC Core nous offre plusieurs options pour gérer l’interaction entre le contrôleur et la vue. Il s’agit notamment de :
  • ViewData ;
  • ViewBag ;
  • TempData.


L’adoption d’une option doit se faire en fonction de vos besoins. Voyons chacune de ces possibilités de près.

ViewData

ViewData offre un dictionnaire pouvant contenir les données qui sont passées à la vue par le contrôleur. Le dictionnaire est accessible via un système clé valeur.

Modifions la méthode d’action Index du contrôleur Home comme suit :

Code c# : Sélectionner tout
1
2
3
4
5
public IActionResult Index() 
        { 
             ViewData["Message"] = "Date du jour : " + DateTime.Now.Date; 
            return View(); 
        }


Cette instruction va ajouter au dictionnaire ViewData la clé « Message » avec pour valeur « Date du jour xxxxx ».

Pour afficher cette information dans la vue, vous devez simplement ajouter la ligne de code suivante :

Code c# : Sélectionner tout
<h3>@ViewData["Message"]</h3>

Ce qui donne le résultat suivant à l’exécution :


ViewBag

ViewBag est assez similaire au ViewData, à la différence que le ViewBag offre des propriétés pouvant être créées dynamiquement. Vous pouvez l’utiliser comme suit dans le contrôleur :

Code c# : Sélectionner tout
ViewBag.Message = "Date du jour : " + DateTime.Now.Date;

Et dans la vue :

Code c# : Sélectionner tout
<h3>@ViewBag.Message</h3>

Comme vous pouvez le constater, le ViewBag est simple d’utilisation et vous pouvez ajouter et modifier dynamiquement de nouveaux champs. Il ne nécessite pas le typage des données (conversion) et est moins performant que le ViewData.

TempData

TempData offre le stockage dans un dictionnaire tout comme le ViewData, à la différence que les données sont stockées le temps d’une session. TempData va conserver l’information le temps d’une requête HTTP.

Il est pratique lorsque vous voulez passer une information entre la requête HTTP courante et la suivante.

Il s’utilise de façon similaire à ViewData.

Dans le contrôleur :

Code c# : Sélectionner tout
TempData["Message"] = "Date du jour : " + DateTime.Now.Date;

Et dans la vue :

Code c# : Sélectionner tout
<h3>@TempData["Message"]</h3>

C’est tout pour cette partie. Dans la prochaine partie, nous verrons comment améliorer l’aspect esthétique de notre application. Pour cela, nous allons utiliser Bower pour l’installation des packages front-end et nous allons mettre en place le Layout.

Bon coding 😉

Une erreur dans cette actualité ? Signalez-nous-la !