.Net MVC控制器向View傳值的三種方法講解


1.提供視圖模型對(duì)象
你能把一個(gè)對(duì)象作為View方法的參數(shù)傳遞給視圖.


public ViewResult Index()  
{  
DateTime date = DateTime.Now;  
return View(date);  
}  
然后我們?cè)谝晥D中使用Razor的Model關(guān)鍵字來(lái)訪問(wèn)這個(gè)對(duì)象




@{  
ViewBag.Title = "Index";  
}  
<h2>Index</h2>  
The day is: @(((DateTime)Model).DayOfWeek)  
或者是



@model DateTime  
@{  
ViewBag.Title = "Index";  
}  
<h2>Index</h2>  
The day is: @Model.DayOfWeek  


2.使用ViewBag(視圖包)傳遞數(shù)據(jù)
View  Bag 允許在一個(gè)動(dòng)態(tài)的對(duì)象上定義任意屬性,并在視圖中訪問(wèn)它.

這個(gè)動(dòng)態(tài)的對(duì)象可以通過(guò)Controller.ViewBag屬性


public ViewResult Index()  
{  
    ViewBag.Message = "Hello";  
    ViewBag.Date = DateTime.Now;  
    return View();  
}  
  
 @{  
 ViewBag.Title = "Index";  
 }  
 <h>Index</h>  
 The day is: @ViewBag.Date.DayOfWeek  
 <p />  
 The message is: @ViewBag.Message  


3. 使用View Data傳遞數(shù)據(jù)
在MVC3.0之前,主要是通過(guò)這種方式傳遞數(shù)據(jù),它是通過(guò)用 ViewDataDictionary類實(shí)現(xiàn)的,而不是動(dòng)態(tài)的對(duì)象.ViewDataDictionary類是類似標(biāo)準(zhǔn)"鍵/值"集合,并通過(guò)
Controller類的ViewData屬性進(jìn)行訪問(wèn)的.這個(gè)方法,在視圖中需要對(duì)對(duì)象進(jìn)行轉(zhuǎn)換.


控制器中:  
 public ViewResult Index()  
 {  
    ViewData["Message"] = "Hello";  
    ViewData["Date"] = DateTime.Now;  
    return View();  
 }  
  
視圖中:  
 @{  
 ViewBag.Title = "Index";  
 }  
 <h2>Index</h2>  
 The day is: @(((DateTime)ViewData["Date"]).DayOfWeek)  
 <p />  
 The message is: @ViewData["Message"]  


原文鏈接:.Net MVC控制器向View傳值的三種方法講解