Maison > développement back-end > Tutoriel C#.Net > Quatre façons de transmettre les données du contrôleur pour les afficher dans ASP.NET MVC

Quatre façons de transmettre les données du contrôleur pour les afficher dans ASP.NET MVC

高洛峰
Libérer: 2017-01-14 11:46:39
original
1722 Les gens l'ont consulté

Prélude

1. Sous le fichier Models du nouveau projet, créez une nouvelle classe Products :

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

2.

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

Méthode 1 : ViewData

Utilisez la méthode ViewData dans le contrôleur pour stocker les objets instanciés ci-dessus sous la forme de paires clé-valeur, comme suit :

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

Récupérez ensuite 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 d'une expression dynamique ViewBag, comme suit :

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

Modifiez la vue comme suit :

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

Méthode 3 : Modèle

renvoie 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 y sommes L'objet de type obligatoire Products est obtenu 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 dans 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 vers : Index — Commande — Détail, puis dans la méthode Detail, l'objet TempData ne peut pas être obtenu Oui, car TempData ne peut être transmis qu'une seule fois et sera automatiquement effacé par le système par la suite.

Résultats de sortie

ASP.NET MVC从控制器传递数据到视图的四种方式

Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, et j'espère que tout le monde visitera PHP. Site chinois.

Pour plus d'articles sur les quatre façons dont ASP.NET MVC transfère les données du contrôleur vers la vue, veuillez faire attention au site Web PHP 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