2012-07-28 14 views
9

Próbuję dodać trasę w mojej aplikacji Web Forms, postępując w ten sposób:ASP.NET routingu w Global.asax

http://msdn.microsoft.com/en-us/library/cc668201.aspx#adding_routes_to_a_web_forms_application

Dodałem drogę w moim pliku Global.asax jak tak:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapPageRoute("", "/WebsiteName/{combinedPin}", "~/Default.aspx"); 
} 

I spróbuj do odwiedzenia mojej strony lokalnie tak:

http: // localhost: 12345/WebsiteName/test36u

Ale dostaję zasób, nie można znaleźć wiadomości, więc nie sądzę, że moja trasa jest poprawna. Czy ktoś może zobaczyć problem z moim kodem?

Wszelkie wskazówki będą mile widziane.

Dzięki

Odpowiedz

5

Nie trzeba podać nazwę swojej stronie jako część trasy, spróbuj z tym kodem:

routes.MapPageRoute("", "{combinedPin}", "~/Default.aspx"); 

z powyższym kodem, twój link będzie wyglądał tak:

http://localhost:12345/WebsiteName/test36u 

Jeśli jednak twoim zamiarem jest to, że użytkownicy uzyskują dostęp do witryny przy użyciu segment o nazwie: WebsiteName następnie użyć:

routes.MapPageRoute("", "WebsiteName/{combinedPin}", "~/Default.aspx"); 

Ale w kodzie precedensu użytkownicy będą mieć dostęp do zasobu, co następuje: (prawdopodobnie nie oczekiwany rezultat chociaż)

http://localhost:12345/WebsiteName/WebsiteName/test36u 
+0

Thanks Jupaol. Czy nadal będę mieć dostęp do Request.QueryString ["combinedPin"]? Chcę być w stanie sprawdzić, czy istnieje dla obsługi błędów ... –

+1

Zignoruj ​​mnie, zorientowałem się, mogę uzyskać w ten sposób: Page.RouteData.Values ​​["combinedPin"] –