집 >백엔드 개발 >C#.Net 튜토리얼 >컨트롤러에서 ASP.NET MVC 보기로 데이터를 전달하는 네 가지 방법
Prelude
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>방법 4: TempDataTempData는 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 개체는 한 번 전송된 후에만 시스템에 의해 자동으로 지워지기 때문에 가져올 수 없습니다. 출력 결과 위 내용은 모두의 학습에 도움이 되기를 바라며, PHP를 방문해 주시길 바랍니다. 중국사이트. ASP.NET MVC가 컨트롤러에서 뷰로 데이터를 전송하는 네 가지 방법에 대한 자세한 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!