#asp.net-mvc #events #global-asax
#asp.net-mvc #Мероприятия #глобальный-asax
Вопрос:
Я работаю над проектом MVCForum (в codeplex) и хочу удалить как можно больше кода из глобального файла.asax — в основном, чтобы упростить интеграцию MVCForum в существующий ASP.NET Приложение MVC без изменения слишком большого количества кода.
Мне нужно подключиться к событиям приложения, чтобы иметь возможность установить правильную CultureInfo (в зависимости от выбора пользователей и т.д.) и другие вещи.
Это не проблема с этим в глобальном файле.asax:
protected void Application_PostAuthorizeRequest() {
// Some code here!
}
Но когда я пытаюсь переместить код в другое место, событие никогда не происходит.
То, что я делаю, это:
public MVCForumBootstrapper(HttpApplication app) {
app.PostAuthorizeRequest = new EventHandler(app_PostAuthorizeRequest);
}
И это в глобальном.asax
protected void Application_Start() {
var strapper = new MVCForumBootstrapper(this);
}
Я ожидал, что это будет работать точно так же?
Что я делаю не так / я пропустил?
Спасибо, Стин
Ответ №1:
Вы должны сделать это в Init
методе Global.asax. В Application_Start
слишком поздно перехватывать события:
public override void Init()
{
base.Init();
var strapper = new MVCForumBootstrapper(this);
}