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; } }
2.
var p = new Products() { Id = 1, Name = "饮料", Price = 2.5 };
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;
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>
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;
Modifiez la vue comme suit :
@{ var p = (Products)ViewBag._Product; }
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); }
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>
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(); }
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 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
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 !