我正在一个需要多个用户类型使用的控制面板的网站上工作。我一直想知道是否可以制作具有不同布局的不同视图,但它们在操作中使用单一动作是相似的,这样我就不需要再次重写它们了?
例如,管理员和主管都可以修改员工详细信息,但管理员视图的布局与主管不同。我可以为每个视图编写不同的操作,但两个操作中的代码与执行相同操作时的代码完全相同。那么可以与许多观点共享一个动作吗?
答案 0 :(得分:4)
你当然可以。但是,该方法取决于您如何确定要呈现的布局以及信息来自何处。最直接的方法是确定用户的类型(角色),并根据用户的角色,您可以在同一个操作方法中呈现特定的视图......
public ActionResult YOUR_ACTION()
{
//do your processing
Role role = GetCurrentUserRole();
if(role.Name = "Admin")
return View("ViewForAdmins");
else if (role.Name = "Supervisor")
return View("ViewForSupervisors");
else
return View("EveryoneElseView");
}
答案 1 :(得分:-4)
也许您可以将员工详细信息放在部分视图中,并从主视图中调用RenderAction。