Maison  >  Article  >  développement back-end  >  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

巴扎黑
巴扎黑original
2017-08-16 14:17:301687parcourir

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; }
  }

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


var p = new Products()
      {
        Id = 1,
        Name = "饮料",
        Price = 2.5
      };

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;

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>

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;

Modifier la vue comme suit :


@{
  var p = (Products)ViewBag._Product;
}

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);

    }

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>

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();
    }

Modifiez la vue comme. suit :


@{
  Products p = (Products)TempData["_product"];
}

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("");
    }

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!

Déclaration:
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