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-3 – ASP.NET MVC 3 – 验证问题
- asp.net-core – 如何在ASP.NET Core 2.0中实现machineKey
- asp.net-mvc – automapper,你在哪里放置代码将View Model映
- 在ASP.Net应用程序中执行Server.MapPath的最有效的方法是什
- asp.net – 两次调用HttpModule EndRequest处理程序
- asp.net-mvc – 如何在MVC6或AspNet Core或IdentityCore中更
- asp.net-mvc – 使用NLog记录未处理的异常? ELMAH和NLog应
- asp.net-mvc-3 – 在MVC3中设置所选选项
- asp.net-mvc-2 – asp.net-mvc2 – 不使用Model的强类型助手
- 实体框架 – 在每个单元测试之前重新创建和重新设置LocalDb
- asp.net – 在webrequest上停止了应用程序池
- asp.net-mvc – 我应该每个请求使用一个HttpClie
- asp.net文件下载 – 跟踪下载的大小
- 增加ASP.NET站点的executionTimeout和maxRequest
- 资源解释为样式表,但在ASP.NET IIS中使用MIME类型
- Asp.net服务器端代码块说明
- asp.net-mvc – 在ASP.Net MVC 2中为非归因模型验
- asp.net-web-api – 在LINQPad中使用WebAPI?
- asp.net-mvc – 将DropDownListFor绑定到字典
- asp.net – MVC 3 htmlhelper的扩展方法来包装内
