2010-10-26 5 views
0

Salutations,Visual Studio 2010 ASP.NET 4.0 WebForms routage ne fonctionne pas dans IDE Debug Mode

J'utilise Visual Studio 2010 et ASP.NET 4.0 pour construire un projet WebForms qui utilise les nouvelles fonctionnalités de routage dans System.Web .Routing. Lorsque je compile ma solution et que je l'exécute à partir de l'environnement de débogage de VS.NET, seuls les routages avec RouteUrl qui incluent une extension ".aspx" sont correctement routés vers le fichier PhysicalFile. Il semble que les demandes faites à d'autres URL ne soient pas «détectées» par le moteur de routage pour le traitement. Dans le cas ci-dessous, "Scénario1" montre un 404 et "Scénario2" fonctionne correctement.

J'apprécierais énormément les conseils que vous pouvez fournir.

Voici le code correspondant dans mon 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"); 
} 

Merci de bien vouloir votre temps.

MomentSurfer

Répondre

1

Je trouve la question à mon problème après avoir lu ce post:

Asp.Net System.Web.Routing won't route URL unless .aspx in on the end

Ma solution VS2010 contient plusieurs projets: web, des cours de couche d'affaires, des cours de couche d'accès aux données, etc. Mon projet Web s'appelait "SystemName.WebForms". La période dans le nom du projet Web interfère avec le routage WebForm d'ASP.NET 4.0 pour une raison étrange. Une fois que j'ai renommé mon projet en "SystemName_WebForms", toutes les routes fonctionnent correctement.

AVEC UNE PÉRIODE AU NOM DU PROJET WEB:

  • que "scenario2" et "scénario4" travail

SANS PERIODE AU NOM DU PROJET WEB:

  • tous scénarios travail

ROUTES:

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"); 

Un grand merci à @ vincentw56 pour trouver et poster la réponse à sa question !!

MomentSurfer

Questions connexes