我知道我的问题是愚蠢的,但我不知道我的问题的解决方案,并可以理解类似的问题在stackoverflow。 我在做简单的博客。 而当我在这个博客上看到一篇文章时,我必须看到他的文章和评论。他们在我的数据库中,但我不知道如何显示两者。 请帮我2个模型在1个视图
0
A
回答
1
您可以创建这个特殊的查看自定义视图模型。类似这样的:
public class BlogReaderViewModel
{
// various fields which exist on either the post or the comments
}
然后,您将绑定到视图的ViewModel。 Controller操作将获取它需要的模型并构建ViewModel的实例以传递给View。
另一种选择是使用a Tuple
。它是一个泛型类,可以充当多种其他类型的强类型容器。所以查看的模式将是这样的:
Tuple<Post, Comments>
从整体设计的角度来看,我最大的建议是考虑你的模型如何彼此相关,并找到你的“聚合根。”在有评论的博客文章的情况下,这听起来像帖子应该是聚合根。模型本身应该有其中的评论。像这样的东西:
public class BlogPost
{
public string Title { get; set; }
public string Body { get; set; }
public IEnumerable<Comment> Comments { get; set; }
}
这个想法是,聚合根是父对象,内部知道它的子对象。每次你想使用它们时,你都不必手动编写这些对象的层次结构。
0
一种选择是创建一个组合模型,它表示呈现视图所需的两组数据,并将每个子模型关闭到视图本身的编辑器模板。
1
你必须创建一个视图模型来表示此视图或数据,这种观点需要,例如:
public class OrderViewModel {
public int Id { get; set; }
public DateTime DateOrder { get; set; }
public decimal Total { get; set; }
public string CustomerName { get; set; }
public List<Item> Items { get; set; }
// other properties
}
你建议立即进行删除使用此视图模型输入您的看法,样品(用剃刀):
@model Models.ViewModels.OrderViewModel
1
它取决于模型中注释的关系。通常评论应该是一个帖子的子集。因此,在视图中,应该能够使像这样的东西(剃刀)的评论:
@foreach (var comment in Model.Comments) {
// comments display goes here
}
确保当你通过模型从您不产生低效的查询控制器的看法。确保查询通过博客获得评论,具体取决于您如何在数据库中获取模型。如果您使用的EF是“Include”指令,例如
.Include(p => p.Comment);
相关问题
- 1. Yii - 1在一个视图中形成2个模型
- 2. 1个视图中的多个模型?
- 3. 在1视图中有2个模型的方法,可以吗?
- 4. 在1视图中处理2个模型
- 5. 在1视图中显示来自2个模型的数据
- 6. 使用1个模型的多个视图模型?
- 7. 如何在1个视图中实现2个模型的编辑方法
- 8. Rails的2个表,1个模型
- 9. 将2个视图分成1个视图在Postgres
- 10. 2款在1个视图MVC4
- 11. 2个模型在单个视图中,如果条件为
- 12. 如何在单个视图中使用2个模型?
- 13. EntityCommandExecutionException - 试图链接1个数据库中的2个模型
- 14. 在MVC中,1个模型1个表格或1个模型几个表格?
- 15. 如何使用2个不同模型创建视图模型
- 16. 在一个视图中的视图模型/实体或多个视图模型的多个视图?
- 17. 将多个模型组合到1个视图导轨中
- 18. 核心数据设计:更好的1个模型有2个商店或2个模型和2个商店?
- 19. 如何在1个窗体中包含2个模型?
- 20. 如何对齐2个视图中的1个视图上的视图
- 21. 在单个视图中传递多个视图模型
- 22. 如何在视图CakePHP 2.x中提供一个模型
- 23. 在一个视图中的ASP.NET NET MVC 2模型
- 24. MVC 3在视图中的2个模型
- 25. 如何在asp.net mvc 4的视图中渲染2个模型?
- 26. 在ASP.NET MVC4中1个动作的2个以上视图
- 27. 如何在1个活动(android)中显示2个视图?
- 28. 如何在erb中为2个布局创建1个视图?
- 29. MVC - 另一个模型视图中的模型视图
- 30. MvvmCross:视图模型视图模型的另一个情景