ViewData
和 TempData 都可以傳遞弱類型資料,區別如下:
ViewData 只在當前
Action 中有效,生命週期和 View 相同;
TempData 的資料至多只能經過一次Controller傳遞,並且每個元素至多只能被訪問一次,訪問以後,自動被刪除。
TempData 一般用於臨時的緩存內容或拋出錯誤頁面時傳遞錯誤資訊,可以將TempData
在使用之前存儲到相應的
ViewData 中以備迴圈使用。
Index
public ActionResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewData["myName"] = "我的名字";
TempData["myAgeOne"] = "26歲";
TempData["myAgeTwo"] = "27歲";
return View();
}
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
ViewData["myName"] = "我的名字";
TempData["myAgeOne"] = "26歲";
TempData["myAgeTwo"] = "27歲";
return View();
}
姓名:@ViewData["myName"]
<br />
年齡1:@TempData["myAgeOne"]
<br />
年齡1:@TempData["myAgeOne"]
Index網頁呈現如下:
About
姓名:@ViewData["myName"]
<br />
年齡1:@TempData["myAgeOne"]
<br />
年齡2:@TempData["myAgeTwo"]
<br />
年齡1:@TempData["myAgeOne"]
<br />
年齡2:@TempData["myAgeTwo"]
ViewBag.Name=ViewData["Name"];
相同:使用同一個字典集合(資料來源)
不同:ViewBag
是 MVC3 新增語法,ViewBag 不再是字典的鍵值對結構,而是 dynamic 動態類型,它會在程式運行的時候動態解析。不過 ViewBag 雖然說因為 dynamic 的特點,在使用時可以不用類別轉換,但也因為這樣,在速度上是會比 ViewData 慢一些。
Dynamically Typed Object 動態類型
C#4.0加入了dynamic關鍵字,可以申明一個變數的static類型為dynamic。
使用dynamic的好處在於,可以不去關心物件是來源於COM,
IronPython, HTML DOM或者反射,只要知道有什麼方法可以調用就可以了,剩下的工作可以留給runtime。
參考資料
Determine if theіr сompensation plan business fair?
回覆刪除Deliveries of the dеvіce on Monday, L&T announсed baggіng two οrders
worth a tοtal of $2, 000. Tο tap into thіѕ pгefаb ρowеr doеs so through а сarefullу definеd mеchanіѕm business
called an application programmіng intеrfaсes,
or AРI s. The cοmpany's shareholders have now approved the spin-off, paving the way for the success of Soul headphones.
My site - http://centr.md/index.php?do=/blog/7919/blogueiro-improve-search-engine-ranking-rodrigo-zandonadi/