MVC:一个View显示多个Model

jjyy850414 2014-03-10 03:59:15
有一个ZhuYeModel和对应的ZhuYeContorllers,上网查过,说要定义一个新的类,里面包含页面需要显示多个Model,如下图所示,新的类直接建在ZhuYeControllers里面,不知道可不可以?还有就是参数的传递问题,页面如何获取Controllers传递出去的值,比如说页面前面的引用等等,如下:
@using QunZhongLuXian.Models
@model List<......>





...全文
8912 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
失落之城sl 2016-07-28
  • 打赏
  • 举报
回复
view层,只能调取一个model 方法
 @model IEnumerable<ViewModel.Mt_xt_js>
想调取第二个model 可用这个
(IEnumerable<JY_SHJC.Models.ViewModel.Mt_xt_mk>)ViewBag.dtModels
直接调用即
@foreach (var itea in (IEnumerable<ViewModel.Mt_xt_mk>)ViewBag.dtModels)
                                                { }
controller层代码

var parmLst = _bll.DataTableToList(parmDt);//返回Mt_xt_js 的list
ViewBag.dtModels = bll.DataTableToList(dt); //返回Mt_xt_mk集合
即ViewBag调用方法
EDDIE_TOT 2016-04-12
  • 打赏
  • 举报
回复
謝謝分享!!
tomkillua 2015-01-27
  • 打赏
  • 举报
回复
复杂页面用viewmodel,保哥的书里有写,个人觉得看完那本书,收获很大。
dgdisme 2014-12-04
  • 打赏
  • 举报
回复
谢谢 能用!
qq_16109319 2014-11-11
  • 打赏
  • 举报
回复
后台怎么获取model ???
threenewbee 2014-03-11
  • 打赏
  • 举报
回复
@model viewModel 就可以了
jjyy850414 2014-03-11
  • 打赏
  • 举报
回复
界面接收的类型应该是viewModel(我自己定义的类类型),那前面的引用应该怎么写啊?
jjyy850414 2014-03-11
  • 打赏
  • 举报
回复
参数填好了


界面如何接收啊?

出现错误
jjyy850414 2014-03-11
  • 打赏
  • 举报
回复
多谢版主!搞定了~把代码分享下,让和我一样的菜鸟可以节约一些时间 ZhuYecontrollers代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using QunZhongLuXian.Models;//项目名称,引用自定义的Model namespace QunZhongLuXian.Controllers { public class viewModel { public List<ZuZhiJiGou> zzjgModel { get; set; } public List<LingDaoJiangHua> ldjhModel { get; set; } public List<GongZuoDongTai> gzdtModel { get; set; } public List<WenJianTongZhi> wjtzModel { get; set; } public List<XueXiJiaoLiu> xxjlModel { get; set; } public viewModel(List<Models.ZuZhiJiGou> zzjgList, List<Models.LingDaoJiangHua> ldjhList, List<Models.GongZuoDongTai> gzdtList, List<Models.WenJianTongZhi> wjtjList, List<Models.XueXiJiaoLiu> xxjlList) { this.zzjgModel = zzjgList; this.ldjhModel = ldjhList; this.gzdtModel = gzdtList; this.wjtzModel = wjtjList; this.xxjlModel = xxjlList; } } public class ZhuYeController : Controller { QunZhongLuXianContext db = new QunZhongLuXianContext(); public ActionResult Index() { var vm = new viewModel(db.ZuZhiJiGous.ToList(), db.LingDaoJiangHuas.ToList(), db.GongZuoDongTais.ToList(), db.WenJianTongZhis.ToList(), db.XueXiJiaoLius.ToList()); vm.zzjgModel = db.ZuZhiJiGous.ToList(); vm.ldjhModel = db.LingDaoJiangHuas.OrderByDescending(p => p.ShiJian).ToList(); vm.gzdtModel = db.GongZuoDongTais.OrderByDescending(p => p.ShiJian).ToList(); vm.wjtzModel = db.WenJianTongZhis.OrderByDescending(p => p.ShiJian).ToList(); vm.xxjlModel = db.XueXiJiaoLius.OrderByDescending(p => p.ShiJian).ToList(); return View(vm); } } } 对应/Views/ZhuYe/Index.cshtml视图代码(部分) @using QunZhongLuXian.Models @model QunZhongLuXian.Controllers.viewModel//引用ZhuYeControllers中自定义的viewModel类类型 中间省略,下面是通过Foreach循环显示两个Model的列表数据(分别是Model.ldjhModel和Model.gzdtModel) <div class="box"> <h1> <span><a href="@Url.Action("Index", "LingDaoJiangHua")">more</a></span>领导讲话 </h1> <ul> @foreach (var item in Model.ldjhModel) { <li> <span class="datetime">@item.ShiJian</span> <a href="@item.LuJing">@item.BiaoTi</a> </li> } </ul> </div> <div class="box"> <h1> <span><a href="@Url.Action("Index", "GongZuoDongTai")">more</a></span>工作动态 </h1> <ul> @foreach (var item in Model.gzdtModel) { <li> <span class="datetime">@item.ShiJian</span> <a href="@item.LuJing">@item.BiaoTi</a> </li> } </ul> </div>
threenewbee 2014-03-10
  • 打赏
  • 举报
回复
怎么填取决于你的数据库表结构,比如db.表名.ToList()
threenewbee 2014-03-10
  • 打赏
  • 举报
回复
你的构造函数有参数,你可以把参数填进去。
jjyy850414 2014-03-10
  • 打赏
  • 举报
回复
就是想问下具体的参数怎么填啊?
past_1 2014-03-10
  • 打赏
  • 举报
回复
填的是你要实例化的数据啊,错误提示给出了参数类型啊
jjyy850414 2014-03-10
  • 打赏
  • 举报
回复
你实例化的var model = new AllModel()是我上面定义的viewModel类吗?


参数应该填什么啊?
threenewbee 2014-03-10
  • 打赏
  • 举报
回复
var model = new AllModel(); model.Jianghua = db.xxxxx model.Dongtai = db.xxxxx return View(model);
jjyy850414 2014-03-10
  • 打赏
  • 举报
回复
我就是在ZhuYeControllers中定义了一个viewModel类,如何在这个
类中的Index()方法实例化并调用,传什么格式的参数到对应的View,本人菜鸟,麻烦详细一点啊
o谢耳朵o 2014-03-10
  • 打赏
  • 举报
回复
多个Model你可以使用ViewBag或ViewData
threenewbee 2014-03-10
  • 打赏
  • 举报
回复
类可以包含多个对象: class AllModel { public 领导讲话的Model类型 Jianghua { get; set; } public 工作动态的Model类型 Dongtai { get; set; } } 如果不止一个讲话,可以包含 List<领导讲话的Model类型>

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧