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