MVC_3种数据传递方式
MVC中控制器和视图之间的三种数据传递方式总结:
1、ViewData
只能在一个动作方法中设置,在相关的视图中获取,只对当前视图有效。
使用方法:
model中:ViewData["test"] = "test";
XX.apsx中:<%=Html.Encode(ViewData["test"]) %> 或者 <%: ViewData["Message"] %>
2、TempData
可以在多个方法或者多个页面中设置、读取。TempData只能在控制器中传递一次,每个元素只能被访问一次,访问后被删除。
TempData实质上是保存在session中,每次读取都是从session中获取并删除。
使用方法:
model中:TempData["TMessage"] = "测试TempData";
XXaspx中:<%: TempData["TMessage"] %>
3、model传递
model传递数据可以解决强类型数据传递。通过view()方法传递实例化对象到视图中。
model:var model = new uerList {new user{name ="name1",age="12"},new user{name="name2",age="23"}};
return View(model);
XXaspx:<% foreach item in model {%>
处理
<%}%>
SP:
传递多个数据对象的方法:
创建一个类,将多数据组合进新类中,在model中传递新类的实例即可。
model: NewClass nc = new NewClass();
nc.names= userlist;
nc.salys = salysList;
return View(nc);
XXaspx:<% foreach item in model.names {%>
处理
<%}%>