asp.net-mvc – 如何在ASP.NET MVC的一个视图中使用多个模型?
我在SO上读过类似的问题,但似乎无法弄清楚这个问题,这是DBContext对象特有的(我认为).这里有一些虚拟代码来说明.
我的Index()操作中有以下代码: public ActionResult Index() { AnimalDBContext db = new AnimalDBContext(); return View(db.Dogs); } 我的模型有以下代码: public class Dog { public int ID { get; set; } public string name { get; set; } public string breed { get; set; } } public class AnimalDBContext : DbContext { public DbSet<Dog> Dogs { get; set; } } 在我看来,我有以下几点: @model IEnumerable<AnimalProject.Models.Dog> @foreach (var d in Model) { <h3>@d.name</h3> <h2>@d.breed</h2> } 一切都很好,视图将循环遍历我的数据库中的每只狗.但是,我在同一视图中有另一组我想要的DBContext数据.我希望能够枚举数据库中该表的每个项目. 这就是我想要的,如果你抓住我的漂移: @model IEnumerable<AnimalProject.Models.Dog> @model IEnumerable<AnimalProject.Models.Cat> @foreach (var d in Dog) { <h3>@d.name</h3> <h2>@d.breed</h2> } @foreach (var c in Cat) { <h3>@c.name</h3> <h2>@c.breed</h2> } 我已经尝试将这些类组合在一起并使用局部视图,但显然你不能在局部视图中使用不同的模型,因为我总是收到错误消息:
那么,我如何在我的视图中使用多个模型,这两个模型都从数据库中的不同表中获取我想要的数据? 解决方法
那么创建自定义视图模型类:
public AnimalModel { public IEnumerable<Dog> Dogs { get; set; } public IEnumerable<Cat> Cats { get; set; } } 在Index中填充此模型并将其传递给期望AnimalModel而不是enumerables的视图. 编辑: 填充模型: public ActionResult Index() { using (var db = new AnimalDBContext()) { var model = new AnimalModel { Dogs = db.Dogs.ToList(),Cats = db.Cats.ToList() }; return View(model); } } 查看(我从未使用过剃刀,所以我希望这是正确的): @model AnimalProject.Models.AnimalModel @foreach (var d in Model.Dogs) { <h3>@d.name</h3> <h2>@d.breed</h2> } @foreach (var c in Model.Cats) { <h3>@c.name</h3> <h2>@c.breed</h2> } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何从AuthorizationContext获取MVC Action
- asp.net-mvc-3 – 我可以将PartialViewResult与PagedList一
- asp.net-mvc – 渲染位于远程服务器上的部分视图
- ASP.NET Core 2.0 支付宝当面付--扫码支付
- asp.net – Dropzone没有绑定到模型
- 在ASP.NET中接收POST数据
- 允许未经身份验证的用户使用ASP.Net表单身份验证访问特定页
- asp.net-mvc – 如何在ASP.NET MVC的所有操作中安装动作过滤
- 三重报价?如何在ASP.NET中分隔数据绑定的JavaScript字符串
- asp.net-mvc – ASP.NET WEB API将DateTime作为URI的一部分
- asp.net-mvc – asp.net mvc复选框不一致
- asp.net-core-mvc – “:exists”在路由模板上做
- asp.net-mvc – 使用MVC时,如何调用Controller A
- asp.net – 如何使RequiredFieldValidator更改父
- asp.net – 更改User-Agent标头触发表单身份验证
- 领先技术 - ASP.NET Core 中的 Cookie、声明和身
- 拦截ASP.NET MVC框架中的请求
- asp.net-mvc – 在同一个视图文件夹中的RenderPa
- asp.net-mvc – MVC5自托管OWIN返回404
- asp.net – 如何在DLL中添加Web服务引用