标签:
今天做了个项目,涉及到离线下载HTML,没有前后台交互,没有Ajax,JavaScript,只有第一次从控制器带参数进入,一次读取到页面所需要的全部数据,使用Razor语法绑定到前台页面,在做这个项目的时候,遇到了一个问题就是:前台页面需要绑定很多数据,可以分成很多个模块,但是有不能使用合适的easyui控件,不能简单的使用单个List或者单个Model想前台传数据。我们都知道简单的传递单个的方法:
方法一:直接返回单个LIst
后台:取到List数据直接返回前台——return view(List)
前台:引用List对应的模型——@model.List
方法二:使用viewBag
后台:viewBag.listDome=list;(list为后台查询到的数据)
前台:直接foreach(var item in viewBag.List){...}循环里就可以吧item看成一个对象从而循环遍历List里的内容
其实这种方法可以传多个List,就是每次都要ViewBag一下,挺麻烦的,所以就有更加灵活的方法三
方法三:使用model传多个List
后台:这个方法其实也是定义model(Listview),只不过在模型里面多定义了一些要传到前台的List,并且单独给List赋值,我们需要定义一个有模型生成的View,将List作为这个View的属性,分别给Listview得属性赋值,之后return view()
前台:1.先引用模型Listview(@。。。。.model.Listview)
2.使用model作为对象,需要访问里面的List,就可以使用对象引用属性的方法,(使用model.list名),要循环遍历也是直接使用foreach,次方法可以有智能提示里面的List,属于强类型,而使用方法二的话属于弱类型,使用viewBag并不能有智能提示里面的List,还有可能会报错!
标签:
原文地址:http://www.cnblogs.com/min-min-min/p/5625264.html