2013-01-25 22 views
0
 <div class="display-label"> 
      <a>Contact</a> 
      @(Model.Store.EmployeeType.Name == "Manager" ? Model.Store.HQ.Manager.DisplayName : Model.Store.Manager.DisplayName) 
     </div> 

如何在视图中处理这些实体中的每个实例的空例外情况?我有这种类型的TON--是否有一种优雅的方式来检查空值,而不是在每个元素之前执行if语句?如何处理剃刀条件中的空例外

回答

2

是,创建您的视图模型的属性:

public class ManagerViewModel 
{ 
    public string Manager {get;set;} 
} 

而在你的控制器:

var viewModel = new ManagerViewModel(); 
viewModel.Manager = Model.Store.EmployeeType.Name == "Manager" ? Model.Store.HQ.Manager.DisplayName : Model.Store.Manager.DisplayName; 
return View(viewModel); 
在你看来

然后,所有你需要做的是:

@Model.Manager 
+0

非常感谢。如果EmployeeType.Name在你的情况下为null?视图是否仍然呈现? – RobVious

+0

而且 - 这是否违反了瘦身控制器的最佳做法?我有大约30个字段需要这种类型的过滤。拥有胖控制器比肥胖视图更好吗? – RobVious

+1

如果'EmployeeType.Name'为'null',它将仍然呈现,因为字符串已经为空。至于瘦身控制器位,看看我的回答你的[其他问题](http://stackoverflow.com/a/14515512/124069)。 –