Унаследуйте ваши контроллеры от базового контроллера. В базовом контроллере переопределите OnActionExecuting
и установите ViewData["UserObject"]
здесь. Примерно так:
public class YourBaseController : Controller
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.ViewData["UserObject"] = ...
}
}
Или создайте пользовательский фильтр с тем же методом OnActionExecuting
, если вы хотите, чтобы только определенные контроллеры предоставляли объект пользователя для просмотра.
ОБНОВЛЕНИЕ:
Создайте собственный помощник Html, если вы не хотите разыгрывать ViewData["UserObject"]
каждый раз:
public static object RenderUserObject(this HtmlHelper html)
{
return ((html.ViewData["UserObject"] as UserObject) ?? new UserObject()).ToString();
}