Прежде всего, спасибо @ eu-ge-ne.
Это то, что я сделал, я открыт для новых предложений, но, похоже, это работает:
Я создаю атрибут ActionFilterAttribute следующим образом:
public class JugadorAttribute : ActionFilterAttribute {
public override void OnActionExecuted(ActionExecutedContext filterContext) {
JugadorRepository jugadorRepository = new JugadorRepository();
Jugador jug = jugadorRepository.GetJugador(filterContext.HttpContext.User.Identity.Name);
filterContext.Controller.ViewData["JugadorActual"] = jug;
}
}
Это помещает в ViewData текущий проигрыватель страницы. Затем в моем контроллере я делаю это:
[JugadorAttribute()]
public class HomeController : Controller {
Проблема теперь в том, что ViewData не является строго типизированным, поэтому я создаю этот помощник в классе Html:
public static class JugadorHelper {
public static Jugador GetJugador(this HtmlHelper html) {
return ((LCP.eTorneos.Dal.EntityFramework.Jugador)html.ViewData["JugadorActual"]);
}
}
И вот, теперь я могу сделать это в моих взглядах:
Html.GetJugador().IsAdmin