2012-02-06 2 views
0

У меня есть 404 маршрут в моем global.asaxAsp.net MVC 3 маршрута таблица - Порядок маршрутов

routes.MapRoute(
        "404", 
        "{*url}", 
        new { controller = "Error", action = "PageNotFound" }) 

; 

и маршруты в районах. Если запрос на маршрут в global.asax, то порядок следования маршрутов в таблице маршрутизации является:

1) Область маршруты

2) global.asax маршруты

3) 404 маршрут

Но если запрос в область, то порядок следования маршрутов в таблице маршрутизации является: ¨

1) global.asax маршруты

2) 4 04 маршрут

3) площадь маршруты

ответ

1

Порядок маршруты применяются в приложении MVC по умолчанию являются:

1.) Область 2.) Глобальная 3.) Маршрут Таблица

Как показано кодом по умолчанию здесь:

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 
    } 

Вы заметите, что области и их регистрация имеют приоритет по маршрутам, зарегистрированным в методе RegisterRoutes. Зачем? Это факт, что маршруты отображаются FIRST во всем списке маршрутов, когда указанный выше код используется для регистрации таблицы маршрутов.

Итак, если ваш код такой же, как указано ниже, и вы не попадаете на правильный маршрут, это скорее всего в том порядке, в котором вы настроили свои маршруты в Районе или в Global.asax.

+0

Но я не понимаю, что беру принтер и обновляю сообщение –

+0

Нам будет очень сложно проверить это. У нас нет всех ваших маршрутов или URL-адресов, которые вы пытаетесь проверить, или каких конфигураций ваши маршруты не работают. Из вашего описания на веб-сервере (версия IIS, не указанная) выполняется иначе, чем другой веб-сервер (IIS? или Visual Studios, построенных на сервере Cassini?). Сколько общих маршрутов отображается в таблице маршрутов? Ваше изображение показывает # 20, но не показывает, было ли после него больше. Вам нужно будет помочь нам получить дополнительную информацию. –

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