【发布时间】:2015-03-05 02:29:47
【问题描述】:
我试图在我的视图中显示对象的属性(如果存在),否则回退到默认值,例如
@if(Product.Description != null && Product.Description.Color != null){
<li>@Product.Description.Color</li>
}
这样做的问题是,如果我在视图中进行 null 检查,则 ObjectContext 已为 Product.Description 处置,如果它不存在并引发异常。
我应该在我的控制器中分配一个默认值/回退,还是有办法在视图中处理这个?
【问题讨论】:
-
永远不要向视图发送“活动”对象。如果你这样做,你实际上是在混合 UI 和数据层。发送一份副本,其中包含您需要在视图中使用的属性。
-
将模型映射到视图模型;并在 ViewModel 中使用合理的默认值进行空值检查:
public bool HasColor() { Product.Description != null && Product.Description.Color != null }具有属性:ProductDescriptionColor {get; set; }
标签: c# asp.net-mvc entity-framework razor