博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Controller与View数据传递 多Model传递
阅读量:5367 次
发布时间:2019-06-15

本文共 1913 字,大约阅读时间需要 6 分钟。

1)ViewBag变量方式

使用4个ViewBag变量进行数据传递,Data1、Data2、Data3、Data4的数据直接从里调。

Control中伪代码如下所示:

1         public ActionResult CnBlogIndex()2         {3 ViewBag.Data1 = Data1; 4 ViewBag.Data2 = Data2; 5 ViewBag.Data3 = Data3; 6 ViewBag.Data4 = Data4; 7 return View(); 8 }

View中伪代码如下所示:

1 //第一块内容 2 @foreach (Data1 data in (ViewBag.Data1 as IEnumerable
)) 3 { 4 5 @Html.DisplayFor(model => data.ID) 6 7 } 8 //第二块内容 9 @foreach (Data2 dat1 in (ViewBag.Data2 as IEnumerable
)) 10 { 11 12 @Html.DisplayFor(model => data.ID) 13 14 } 15 //第三块内容 16 @foreach (Data3 data in (ViewBag.Data3 as IEnumerable
)) 17 { 18 19 @Html.DisplayFor(model => data.ID) 20 21 } 22 //第四块内容 23 @foreach (Data4 data in (ViewBag.Data4 as IEnumerable
)) 24 { 25 26 @Html.DisplayFor(model => data.ID) 27 28 }

2)ViewModel方式(推荐)

什么是ViewModel?ViewModel就是针对视图做的Model,让Model更加适合于View。Data1、Data2、Data3、Data4的数据直接从数据库里取出,然后组装给ViewModel,ViewModel做为整个页面的数据载体进行数据传递:

ViewModel中的伪代码如下所示:

1     public class CnBlogIndex {2         List Data1 { get; set; } 3 List Data2 { get; set; } 4 List Data3 { get; set; } 5 List Data4 { get; set; } 6 }

Control中伪代码如下所示:

public ActionResult CnBlogIndex()         {             ViewModel.CnBlogIndex CnBlogIndex = new ViewModel.CnBlogIndex();             CnBlogIndex.Data1 = Data1;             CnBlogIndex.Data2 = Data2; CnBlogIndex.Data3 = Data3; CnBlogIndex.Data4 = Data4; return View(CnBlogIndex); }

View中伪代码如下所示:

1 @model CnBlogIndex 2 @foreach (var info in Model.Data1) 3 { 4  5 info.** 6  7 } 8 @foreach (var info in Model.Data2) 9 { 10  11 info.** 12  13 } 14 @foreach (var info in Model.Data3) 15 { 16  17 info.** 18  19 } 20 @foreach (var info in Model.Data4) 21 { 22  23 info.** 24  25 }

两种传递数据的方式都可以完成我们的正常工作,但个人更推荐使用ViewModel将一个页面的信息进行聚合,这样虽然多了一些工作量,但可以使整体结构更清晰,同进也更易于维护。

3)使用Tuple类

转载于:https://www.cnblogs.com/xbzhu/p/7459172.html

你可能感兴趣的文章
mysql 同一个表中 字段a 的值赋值到字段b
查看>>
antiSMASH数据库:微生物次生代谢物合成基因组簇查询和预测
查看>>
UNICODE与ANSI的区别
查看>>
nginx 配置实例
查看>>
Flutter - 创建底部导航栏
查看>>
ASP.NET MVC 教程-MVC简介
查看>>
SQL Server索引 - 聚集索引、非聚集索引、非聚集唯一索引 <第八篇>
查看>>
转载:详解SAP TPM解决方案在快速消费品行业中的应用
查看>>
Android OpenGL ES 开发(N): OpenGL ES 2.0 机型兼容问题整理
查看>>
项目中用到的技术及工具汇总(持续更新)
查看>>
【算法】各种排序算法测试代码
查看>>
HDU 5776 Sum
查看>>
201521123044 《Java程序设计》第9周学习总结
查看>>
winfrom 图片等比例压缩
查看>>
人工智能实验报告一
查看>>
用LR12录制app,用LR11跑场景,无并发数限制,已试验过,可行!
查看>>
python 多线程就这么简单(转)
查看>>
oracle 简述
查看>>
ajax如何向后台传递数组,在后台该如何接收的问题(项目积累)
查看>>
Solr之java实现增删查操作
查看>>