2014-10-06 4 views
0

Я читаю онлайн статьи, которые показывают следующее определение маршрутизатора: -Понимание Asp.net MVC маршрута конфигурации

public static void RegisterRoutes(RouteCollection routes) { 
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
routes.MapRoute(null, 
205 
"", 
new { 
controller = "Product", action = "List", 
category = (string)null, page = 1 
} 
); 
routes.MapRoute(null, 
"Page{page}", 
new { controller = "Product", action = "List", category = 
(string)null }, 
new { page = @"\d+" } 
); 

Но я не могу понять, что делает этот маршрутизатор правила означают, и как они будут работать, я обычно не изменяют правила маршрутизатора и сохраняют определение по умолчанию как есть? Спасибо

ответ

0

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

routes.IgnoreRoute ("{resource} .axd/{* pathInfo}"); < - указывает на игнорирование попыток загрузки файлов ресурсов.

null, где должно быть название маршрута. Они не назначают имя. Я предполагаю, что 205 - это идентификатор продукта, действие «» по умолчанию - «Список», если вы не добавляете категорию в строку запроса, тогда ему присваивается нуль, который затем помещается в строку. Для меня это немного странно. Без тестирования он либо дает пустую строку, либо нулевое значение. Страница предназначена для навигации по страницам. Довольно немного этого маршрута зависит от конкретного действия на стороне сервера.

routes.MapRoute(null, 
205 
"", 
new { 
controller = "Product", action = "List", 
category = (string)null, page = 1 
} 
); 

Последняя запись устанавливает значения по умолчанию для действия контроллера. Один новый фрагмент - это «новый {page = @" \ d + "}, который является выражением регулярного выражения, которое ограничивает допустимое значение цифрой от 0 до 9 и + требует 1 или более цифр. В качестве дополнительного лакомого, новый { } <. - где пользовательские методы routerhandler будут связаны с маршрутом, если вы хотите сделать некоторые более конкретные обработки маршрута Поиск IRouteHandler подробности

routes.MapRoute(null, 
"Page{page}", 
new { controller = "Product", action = "List", category = 
(string)null }, 
new { page = @"\d+" } 
); 

Я надеюсь, что это помогает маршрутизации может быть реальной боли иногда...

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