Visual Studio 2010 ASP.NET 4.0 WebForms Routing не работает в режиме отладки IDE - PullRequest
0 голосов
/ 26 октября 2010

Привет,

Я использую Visual Studio 2010 и ASP.NET 4.0 для создания проекта WebForms, который использует новые функции маршрутизации в System.Web.Routing. Когда я создаю свое решение и запускаю его из среды отладки VS.NET, в PhysicalFile правильно маршрутизируются только маршруты с RouteUrl с расширением «.aspx». Похоже, что запросы к другим URL-адресам не «обнаруживаются» механизмом маршрутизации для обработки. В приведенном ниже случае «Сценарий 1» показывает 404, а «Сценарий 2» работает правильно.

Буду очень признателен за любые рекомендации, которые вы можете дать.

Вот соответствующий код в моем global.asax:

void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup

    // Register Routes
    RegisterRoutes();
}

void RegisterRoutes()
{
    System.Web.Routing.RouteTable.Routes.MapPageRoute("Scenario1", "scenario1/{option1}", "~/About.aspx");  
    System.Web.Routing.RouteTable.Routes.MapPageRoute("Scenario2", "scenario2.aspx", "~/About.aspx");
}

Спасибо, что уделили время.

MomentSurfer

1 Ответ

1 голос
/ 31 октября 2010

Я обнаружил проблему с моей проблемой после прочтения этого поста:

Asp.Net System.Web.Routing не будет направлять URL-адрес, если в конце нет .aspx

Мое решение VS2010 содержит несколько проектов: веб, классы бизнес-уровня, классы слоя доступа к данным и т. Д. Мой веб-проект назывался «SystemName.WebForms». Точка в имени веб-проекта по какой-то странной причине мешает маршрутизации WebForm в ASP.NET 4.0. После того, как я переименовал свой проект в «SystemName_WebForms», все маршруты работают правильно.

С ПЕРИОДОМ НАИМЕНОВАНИЯ ВЕБ-ПРОЕКТА:

  • работают только "script2" и "script4"

БЕЗ ПЕРИОДА НАИМЕНОВАНИЯ ВЕБ-ПРОЕКТА:

  • все сценарии работы

МАРШРУТЫ:

    RouteTable.Routes.MapPageRoute("scenario1", "scenario1/{option1}", "~/About.aspx");
    RouteTable.Routes.MapPageRoute("scenario2", "scenario2.aspx", "~/About.aspx");
    RouteTable.Routes.MapPageRoute("scenario3", "scenario3", "~/About.aspx");
    RouteTable.Routes.MapPageRoute("scenario4", "scenario4.xxx", "~/About.aspx");

Большое спасибо @ vincentw56 за то, что нашли и опубликовали ответ на свой вопрос !!

MomentSurfer

...