Donc, je suis dans une situation, où j'ai besoin d'afficher une vue différente basée sur le "rôle" que l'utilisateur authentifié a.ASP.NET MVC Actions qui retournent des vues différentes, ou font juste une tonne d'actions?
Je me demande quelle approche est la meilleure ici:
[Authorize(Roles="Admin")]
public ActionResult AdminList(int? divID, int? subDivID)
{
var data = GetListItems(divID.Value, subDivID.Value);
return View(data);
}
[Authorize(Roles = "Consultant")]
public ActionResult ConsultantList(int? divID, int? subDivID)
{
var data = GetListItems(divID.Value, subDivID.Value);
return View(data);
}
ou dois-je faire quelque chose comme ça
[Authorize]
public ActionResult List(int? divID, int? subDivID)
{
var data = GetListItems(divID.Value, subDivID.Value);
if(HttpContenxt.User.IsInRole("Admin"))
{ return View("AdminList", data); }
if(HttpContenxt.User.IsInRole("Consultant"))
{ return View("ConsultantList", data); }
return View("NotFound");
}
Le premier semble être plus facile à lire et à maintenir probablement. –
@Developer Art - sauf que votre vue devra savoir quelle action appeler en fonction du rôle. Il vaut mieux que le contrôleur détermine quelle vue utiliser en fonction du rôle de l'OMI. – tvanfosson
C'est ce que je pensais aussi, mais je voulais juste voir si quelqu'un d'autre réfléchissait à ça aussi et a pris une résolution différente de celle que j'ai eue. – Nate