Maison > développement back-end > Tutoriel C#.Net > Présentation de la façon dont MVC dans ASP.NET transmet les données du contrôleur à l'affichage

Présentation de la façon dont MVC dans ASP.NET transmet les données du contrôleur à l'affichage

巴扎黑
Libérer: 2017-08-16 14:17:30
original
1767 Les gens l'ont consulté

Cet article présente principalement les quatre façons dont ASP.NET MVC transfère les données du contrôleur vers la vue. Il a une certaine valeur de référence et les amis intéressés peuvent s'y référer.

Prélude

1. Sous le fichier Modèles du nouveau projet, créez une nouvelle classe Produits :


 public class Products
  {
    public int Id { get; set; }
    public string Name { get; set; }
    public double Price { get; set; }
  }
Copier après la connexion

2. Dans le contrôle Instanciez cette classe dans le contrôleur


var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
Copier après la connexion

Méthode 1 : ViewData

Utilisez ViewData pour saisir la méthode le contrôleur La classe formelle de paires de valeurs stocke les objets instanciés ci-dessus, comme suit :


ViewData["person"] = p;
Copier après la connexion

Ensuite, récupérez la valeur dans ViewData dans la vue et convertissez l'objet, comme suit :


@{
  var p = (Products)ViewData["person"];
}
<h1>@p.Id</h1>
<h2>@p.Name</h2>
<h3>@p.Price</h3>
Copier après la connexion

Méthode 2 : ViewBag

Utilisez la méthode dans le contrôleur pour stocker l'objet ci-dessus sous la forme de l'expression dynamique ViewBag, comme suit :


ViewBag._Product = p;
Copier après la connexion

Modifier la vue comme suit :


@{
  var p = (Products)ViewBag._Product;
}
Copier après la connexion

Méthode 3 : Modèle

Renvoyez la méthode dans le contrôleur à l'objet View ci-dessus, comme suit :


public ActionResult Index()

    {

      var p = new Products()

      {

        Id = 1,

        Name = "饮料",

        Price = 2.5

      };

      return View(p);

    }
Copier après la connexion

Et nous obtenons l'objet de type obligatoire Products dans la vue, comme suit :


@using MvcTest.Models;
@model Products
@{
  ViewBag.Title = "Index";
}
<h1>@Model.Id</h1>
<h2>@Model.Name</h2>
<h3>@Model.Price</h3>
Copier après la connexion

Méthode 4 : TempData

TempData peut continuer à être utilisé via la redirection car sa valeur est enregistrée au milieu de la session. Cependant, TempData ne peut être transmis qu’une seule fois et sera ensuite automatiquement effacé par le système.

Ci-dessous, je vais démontrer le passage de l'action Index à l'action Order et afficher la valeur stockée dans TempData dans la vue.

Créez d'abord une nouvelle méthode Action dans le contrôle et nommez-la Méthode Order. Le code est le suivant :


public ActionResult Index()
    {
      var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
      TempData["_product"] = p;
      return RedirectToAction("Order");
    }
    public ActionResult Order()
    {
      return View();
    }
Copier après la connexion

Modifiez la vue comme. suit :


@{
  Products p = (Products)TempData["_product"];
}
Copier après la connexion

Supposons que le code dans le contrôleur soit modifié comme suit :


public ActionResult Index()
    {
      var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };
      TempData["_product"] = p;
      return RedirectToAction("Order");
    }
    public ActionResult Order()
    {
      return RedirectToAction("Detail");
    }
    public ActionResult Detail()
    {
      Products _product = (Products)TempData["_product"];
      return View("");
    }
Copier après la connexion

Tournez-vous vers : Index — Ordre — Détail, puis dans Détail Dans la méthode, l'objet TempData ne peut pas être obtenu car TempData ne peut être transmis qu'une seule fois et sera automatiquement effacé par le système.

Résultats de sortie

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal