次のようにすべての定義を移動しています。
@(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 あるため、コントローラーはかなり大きくなります。フィールドごとに新しいプロパティを作成しています。