Изменение частичного представления внутри Site.Master в соответствии с пользователем ASP.NET MVC 3

Мой вопрос похож на этот вопрос: получить доступ к информации базы данных в частичном представлении, .ascx, который включен в Site.Master в asp.net mvc

My Site.Master не привязан к модели представления или контроллеру. Как я могу получить доступ к пользовательскому контексту внутри частичного представления, загруженного в мой файл Site.Master?


person user2211833    schedule 27.03.2013    source источник
comment
Вы можете объяснить это поподробнее? Чего именно пытаются добиться?   -  person    schedule 27.03.2013
comment
Я подозреваю, что это проблема XY (meta.stackexchange .com / questions / 66377 / what-is-the-xy-problem). Расскажите нам, что вы пытаетесь сделать с помощью этого кода, другими словами, настоящую проблему, которую вы пытаетесь решить.   -  person Erik Funkenbusch    schedule 27.03.2013
comment
У меня есть частичное представление, где мне нужен идентификатор пользователя asp.net, чтобы получить другую информацию о пользователе. Обычно, если я использую метод GET контроллера, я могу просто вызвать AppUserInstance.Id. Но я не в контроллере, поэтому не могу этого сделать. Спасибо за помощь.   -  person user2211833    schedule 27.03.2013
comment
Я смог войти в базовый класс своего контроллера и добавить его в ViewData   -  person user2211833    schedule 27.03.2013


Ответы (1)


Для этого можно использовать фильтры действий. В фильтрах действий вам нужно переопределить метод OnActionExecuting и передать UserContext в filterContext.Controller.ViewBag.UserContext

Эту динамическую панель просмотра вы можете использовать в своих мастер-файлах где угодно.

Отвечает ли это на ваш вопрос?

Редактировать:

Вам нужен класс, унаследованный от ActionFilterAttribute, вы можете затем переопределить его OnActionExecuting метод, как показано ниже:

public override void OnActionExecuting(ActionExecutingContext filterContext)
      {           
         //Your implementation here
         base.OnActionExecuting(filterContext);
      }
person Aman    schedule 27.03.2013
comment
Спасибо за ваш ответ. что такое filterContext - person user2211833; 27.03.2013