У меня есть контроллер с именем BaseController
, который унаследован всеми другими контроллерами. У меня есть конструктор BaseController
, где я делаю некоторые вычисления на основе переменной patId, которую он выбирает из сеанса, и на основе этого вычисления пользователю разрешено выполнять некоторые действия.Доступ к параметру метода действия в конструкторе контроллера
Но есть контроллер MyController
, действие которого впервые получает эту переменную в этом модуле из другого модуля приложения, поэтому до тех пор, пока он не будет установлен в сеанс.
public ActionResult MyAction(string patId)
{
// First time patId is been set into session
}
BaseController
Так что мой расчет становится неправильным для этого действия. Есть ли способ получить это значение переменной в конструкторе BaseController
. Чтобы я мог проверить, имеет ли значение сеанса значение null, проверьте этот параметр и установите сеанс.
Просьба предложить, если я смогу это сделать, или я могу решить проблему с любым другим способом.
Невозможно обойтись только с помощью конструкторов контроллера. Не можете ли вы просто проверить, доступно ли значение в сеансе, и если это не остановит расчет? Другой вариант - перехватить все входящие запросы и извлечь из них значение, если необходимо, до того, как оно поступит в контроллер, см. [Этот поток] (http://stackoverflow.com/q/11726848/728795) для идей – Andrei
Спасибо @ Andrii .. Кажется, что это поможет. Я попытаюсь выбрать второй вариант и попробую, если это поможет мне или нет. – prashant
@Andrei, если я использую ActionFilter для перехвата запроса, но конструктор контроллера будет вызываться первым, чем FilterAttribute. – prashant