0

我正在移动所有定义,如下所示:

 @(Model.Store.EmployeeType.Name == "Manager" ? Model.Store.HQ.Manager.DisplayName : Model.Store.Manager.DisplayName )

从我的视图中进入视图模型:

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 个字段需要这种类型的处理,所以我的控制器会很大——我正在为每个字段创建一个新属性。

4

1 回答 1

2

不要太担心过早的优化。我认为您在这里走在正确的道路上,不必为此担心太多。

如果您真的担心“瘦”控制器,则可以从构造函数中填充 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);
于 2013-01-25T04:49:03.833 回答