前奏
1. 在新建项目中的Models文件下,新建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 };
体式格局1:ViewData
将掌握器中的要领用ViewData以键值对的情势类存储上述的实例化对象,以下:
ViewData["person"] = p;
然后在视图中猎取ViewData中的值,并转换对象,以下:
@{ var p = (Products)ViewData["person"]; } <h1>@p.Id</h1> <h2>@p.Name</h2> <h3>@p.Price</h3>
体式格局2:ViewBag
将掌握器中的要领应用ViewBag动态表达式的情势存储上述对象,以下:
ViewBag._Product = p;
修正视图,以下:
@{ var p = (Products)ViewBag._Product; }
体式格局3:Model
将掌握器中的要领返回View上述对象,以下:
public ActionResult Index() { var p = new Products() { Id = 1, Name = "饮料", Price = 2.5 }; return View(p); }
而我们在视图中获得强迫范例对象Products,以下:
@using MvcTest.Models; @model Products @{ ViewBag.Title = "Index"; } <h1>@Model.Id</h1> <h2>@Model.Name</h2> <h3>@Model.Price</h3>
体式格局四:TempData
TempData能够经由过程转向继承运用,由于它的值保存在Session中。但TempData只能经由一次通报,以后会被体系自动消灭。
下面我将演示从Index行动转向Order行动,并在视图中输出TempData中存储的值。
首先在掌握中新建Action要领,命名为Order要领,代码以下:
public ActionResult Index() { var p = new Products() { Id = 1, Name = "饮料", Price = 2.5 }; TempData["_product"] = p; return RedirectToAction("Order"); } public ActionResult Order() { return View(); }
修正视图以下:
@{ Products p = (Products)TempData["_product"]; }
假定掌握器中的代码修正以下:
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(""); }
转向:Index — Order — Detail,那末在Detail要领中,是不能猎取到TempData对象的,由于TempData只能经由一次通报,以后会被体系自动消灭。
输出效果
以上就是引见ASP.NET中的MVC怎样从掌握器通报数据到视图的细致内容,更多请关注ki4网别的相干文章!