Альтернативные места для регистрации маршрутов к global.asax - PullRequest
6 голосов
/ 27 июля 2010

Наиболее распространенная практика - регистрировать маршруты в событии Application_Start в файле global.asax.cs/vb.Но для этого вам нужен доступ к этому файлу.Хорошо.

У меня либо нет, либо не хочу.Я пытаюсь интегрировать приложение Asp.net MVC в сайт Sharepoint 2010 и не хочу создавать свой собственный глобальный класс приложений, который бы также регистрировал маршруты для меня, изменил файл Globalpoint.asax на Sharepoint и поместил другое определение класса вЭто.Моя заявка не будет принята, потому что я буду делать неподдерживаемые вещи в Sharepoint.

Мне было интересно, можно ли было тогда зарегистрировать маршруты в другом месте?Сначала мне в голову пришли две альтернативы:

  1. Напишите HttpModule и злоупотребьте событием запуска приложения .Таким образом, я бы вставил код события запуска приложения без искажения с global.asax, к которому у меня нет доступа.Я могу добавить еще один HttpModule в web.config.

    Примечание: События уровня приложения недоступны в модулях.Облом.Они могут получить доступ только к событиям уровня запроса.

    Важно: ... или так я думал.Если вы проверите принятый ответ, то на самом деле можно обработать событие запуска на уровне приложения.Косвенно и надежно это возможно.

  2. Напишите HttpModule и злоупотребьте некоторым другим событием , таким как запрос запуска .Конечно, я также должен был бы где-то хранить некоторые данные о том, что мои маршруты уже зарегистрированы, и что регистрация будет происходить только в первый раз.

Есть ли лучшие способы /места для регистрации маршрутов?

Ответы [ 2 ]

1 голос
/ 12 августа 2010

Возможен запуск приложения Catching Application в HttpModule

Если вы проверите мой другой вопрос , вы увидите, что это легко возможно. Я сделал это потом, и я могу заверить вас, что это работает.

Я также писал в блоге об этой функции ... Дважды:

1 голос
/ 27 июля 2010

Может быть, эта статья будет вам полезна

http://haacked.com/archive/2010/01/17/editable-routes.aspx

Вы можете использовать модуль HTTP для установки маршрутов объекта RouteTable.Routes RouteCollection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...