ASP.Net MVC数据传递

今天做了个项目,涉及到离线下载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,还有可能会报错!

原文地址:https://www.cnblogs.com/min-min-min/p/5625264.html