我正在移动所有定义,如下所示:
@(Model.Store.EmployeeType.Name == "Manager" ? Model.Store.HQ.Manager.DisplayName : Model.Store.Manager.DisplayName )
从我的视图中进入viewModel:
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
我的问题是 - 这是否违反了瘦身控制器的最佳做法?我有大约30个需要这种处理的字段,因此我的控制器将会非常大 - 我正在为每个领域创建一个新属性。
答案 0 :(得分:2)
不要过于担心premature optimization。我认为你在这里走的是正确的道路,不会过分担心它。
如果您真的担心“瘦”控制器,可以从构造函数中填充ViewModel。
public class ManagerViewModel
{
public ManagerViewModel(ManagerModel model){
// initialize in here
this.Manager = model.Store.EmployeeType.Name == "Manager" ? model.Store.HQ.Manager.DisplayName : model.Store.Manager.DisplayName;
}
public string Manager {get;set;}
}
var viewModel = new ManagerViewModel(model);
return View(viewModel);