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 {%>

               处理

     <%}%>

       

posted @ 2011-04-28 21:41  星空有我  阅读(3013)  评论(0编辑  收藏  举报