В Global.asax, что означает следующее?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
В Global.asax, что означает следующее?
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
Это одна из очень неприятных вещей в изучении 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.
Файл .axd - это виртуальный файл, обрабатываемый обработчиком HTTP. Они используются для (помимо прочего) доставки различных ресурсов на веб-страницу, таких как автоматически созданный javascript для элементов управления AJAX и т.п.
Поскольку это виртуальные файлы, вы не хотите, чтобы механизм маршрутизации пытался сопоставить эти запросы с контроллерами. Вам нужно, чтобы они выполнялись непосредственно ASP.NET.
То, что достигает линия.
Без этого ASP.NET попытается сопоставить все запросы обработчикам AXD с контроллерами и действиями. Наличие ignoreRoute означает, что URL-адрес не будет отображать URL-адрес контроллера в соответствии с поведением по умолчанию.
Он сообщает движку маршрутизации игнорировать этот запрос и оставить его в ASP.NET Webforms для обработки вещей.
Это полезно, например, для журнала ELMAH, использующего обработчик elmah.axd.