2009-07-28 2 views

ответ

0

Он сообщает движку маршрутизации игнорировать этот запрос и оставить его в ASP.NET Webforms для обработки вещей.

Это полезно, например, для регистрации ELMAH, использующего обработчик elmah.axd.

2

Без этого ASP.NET попытается сопоставить все запросы обработчикам AXD с контроллерами и действиями. Наличие ignoreRoute означает, что URL-адрес не будет отображать URL-адрес контроллера в соответствии с поведением по умолчанию.

3

Файл .axd - это виртуальный файл, обрабатываемый обработчиком HTTP. Они используются для (помимо прочего) доставки различных ресурсов на веб-страницу, таких как автоматически созданный javascript для элементов управления AJAX и т. П.

Поскольку это виртуальные файлы, вы не хотите, чтобы механизм маршрутизации пытался сопоставить эти запросы с контроллерами. Вам нужно, чтобы они выполнялись непосредственно ASP.NET.

Это то, что достигает линия.

11

Это одна из очень неприятных вещей, связанных с изучением MVC - документация по этой функции ужасна - там почти ничего нет: http://msdn.microsoft.com/en-us/library/dd470170(VS.100).aspx.

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

Это позволяет все something.axd файлы для запуска вне MVC - что «{* Pathinfo}» в конце позволяет строки запроса игнорироваться (это своего рода шаблона).

Обратите внимание, что это не применяет такой подстановки в пути, так:

trace.axd?clear=1 //excluded from MVC 

mySubFolder/customResource.axd //MVC passed to mySubFolderController.customResource() 

полезное. Я не смог найти достойную документацию по тому, что есть и не поддерживается в качестве ключевых слов, кроме «{resource» »и« {* pathInfo} ».

Однако существует почти полностью недокументированная функция, которая дает вам намного больше контроля над этими игнорируемыми маршрутами:

//ignore all WebForms .aspx/.asmx/.ashx calls anywhere 
routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.as[pmh]x(/.*)?" }); 

Если передать Анон инициализирован объекту со свойством, что свойство становится ключевым словом, которое вы можете использовать в маршруте.

Вы не можете переслать регулярное выражение в маршрут, но вы можете использовать это свойство anon.

Смежные вопросы