最经开发一个mvc项目,view需要获取多个datatable的数据,所以在Controller层就使用了list<datatable> dList 来装多个datatable,然后controller层将这个 dList传给view层。在view层只要通过@model[index]就可以获取对应的datatable数据了,但是这样很不容易维护,如果我要修改dList里面的数据(往dList中间增删数据)的话,那么view层就要把index都改变,这样很难维护。
问:有没有一个更好的方法,让我把这些datatable和为每个datatable设置一个固定的表名,存放在一个类似集合的容器里,然后我在view层只需要通过datatable对应的表名就可以获取到对应的datatable了,因为表名是可以设置为固定的。
那你传送一个字典给View , 字典的KEY就是表名 VALUE就是 datatable
//声明一个字典
private Dictionary<string, DataTable> dic = null;
//新建字典
dic = new Dictionary<string, DataTable>();
//往字典赋值
dic.Add("tb_NewList", new New().getNewTop());
//传递字典给视图
return View(dic);
//view获取对应表的行,view引用@model IDictionary<string,System.Data.DataTable>
Model["tb_LibraryServerList"].Rows
ViewBag就可以啊,这个是动态类型。你将dictionary<string,DataTable>传给它就好了
我的写法是下面:您所说的viewBag好像有点麻烦哦,您的想法是怎样的?
//声明一个字典
private Dictionary<string, DataTable> dic = null;
//新建字典
dic = new Dictionary<string, DataTable>();
//往字典赋值
dic.Add("tb_NewList", new New().getNewTop());
//传递字典给视图
return View(dic);
//view获取对应表的行,view引用@model IDictionary<string,System.Data.DataTable>
Model["tb_LibraryServerList"].Rows