asp.net Webforms порядок приоритета MapPageRoute

Я пытаюсь использовать функцию MapPageRoute в Visual Studio 2010 и .NET Framework 4.0 с приложением asp.net webforms.

Я заметил, что если я определяю маршрут страницы с именем «По умолчанию», как показано ниже, и страница Default.aspx существует в проекте, то маршрут не работает.

routes.MapPageRoute("Default", "default.aspx", "~/Page2.aspx");
routes.MapPageRoute("Test", "test.aspx", "~/Page2.aspx");

Если я изменю имя Default.aspx в проекте на Default_1.aspx, тогда маршрут будет работать нормально.

Похоже, что существует какой-то порядок приоритета. Есть ли способ сначала оценить мои определения маршрутов, чтобы мне не пришлось переименовывать свои страницы для использования механизма маршрутизации?


person moke    schedule 04.06.2010    source источник


Ответы (1)


В RouteCollection есть свойство под названием RouteExistingFiles, для которого по умолчанию установлено значение false. Это объясняет, почему маршрут по умолчанию не работает, если у вас есть страница default.aspx.

Если вы вставите routes.RouteExistingFiles = true; перед строками кода, это сделает маршруты более приоритетными. Я не уверен на 100%, будет ли он затем возвращаться к файлам, если он не может маршрутизировать - я думаю, это зависит от маршрутов, которые вы настроили ...

person Jon    schedule 04.06.2010
comment
установка routes.RouteExistingFiles = true сделала свое дело. благодаря. - person moke; 07.06.2010