Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET中TempData,ViewData和ViewBag的比较

ASP.NET中TempData,ViewData和ViewBag的比较2013-10-20 cnblogs 文酱学习ASP.NET有大约一个月了,一直都是半生不熟的,因为之前的很长时间都是在做java开发,没有时间 静下来心来学习,加上ASP.NET的框架也很复杂,一时间也是看的昏头转向的,所以只能看到一点记录一点, 慢慢积累,慢慢总结吧。

Action向View传递数据很简单,方式也很多,最直接的就是我们向View传递 Model,这本身就是MVC的意义所在。如果是显示一些消息,像是错误信息,可以使用 ViewData:

public ActionResult Index(){ ViewData["message"] = "Hello Word!"; return View();}
然后是视图:

<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"><%: ViewData["message"]%></asp:Content>
实际效果如:

我们可以看到,ViewData就是 一个字典,它存放的是键值对。

既然Action可以向View传递数据,那么View是否可以修改数据然后再 回传给Action呢?

我们对代码这样修改:

public ActionResult Index(){ViewData["message"] = "Hello Word!";return View();}public ActionResult About(){string message = ViewData["message"] as string;if (message == "Hello"){ ViewData["message2"] = "已经修改"; }else{ ViewData["message2"] = "没有修改";} return View();}