我试图在我的 View 中显示一个对象的属性(如果它存在),否则返回到默认值,例如
@if(Product.Description != null && Product.Description.Color != null){
<li>@Product.Description.Color</li>
}
这个问题是,如果我在 View 中进行 null 检查,则 ObjectContext 已为 Product.Description 处理,如果它不存在并抛出异常。
我应该在我的 Controller 中分配一个默认值/回退,还是有办法在 View 中处理这个问题?
最佳答案
永远不要向 View 发送“事件”对象。如果这样做,您实际上是在混合 UI 和数据层。请记住,在呈现 View 时 Controller 已完成执行。
而是发送一份副本,其中包含您需要在 View 中使用的属性。
我知道有些书建议 MVC 中的“M”代表“领域模型模型”,他们建议这应该是一个实例,对于实例, Entity Framework 实体。我不同意,并认为这混合了责任。
我很幸运地使用了“AutoMapper”工具,它使从 EF 实体的属性和您在 View (ViewModel)中使用的模型的属性映射变得简单。
关于c# - 为 .NET MVC 中的 ObjectContext 设计回退的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28868980/