Ответ 1
Это одна из очень неприятных вещей в изучении 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.