2010-12-09 19 views
1

Ich habe eine Web-Anwendung, die ich eine benutzerdefinierte Route zu Route http://domain/MyMVCSite/MyPage.ASP zu einem Controller/Aktion meiner Wahl zu routen verwenden.MVC benutzerdefinierte Route Frage: Route eine Ebene höher?

Ich bin nicht allzu vertraut mit benutzerdefinierten Routing, sondern, wie es steht, das ist meine individuelle Route:

routes.MapRoute(
     "Page", 
     "MyPage.ASP", 
     new { controller = "KTASP", action = "KTASP", id = "" } 
    ); 

Wie gesagt, diese Routen:

http: // {domain} /MyMVCSite/MyPage.ASP

ich dafür Weg möchte:

http: // {domain} /MyPage.ASP

Ist das möglich? Wie würde ich die benutzerdefinierte Route anpassen?

Meine MVC-Site wird als virtuelles Verzeichnis einer Website auf IIS6 bereitgestellt.

Antwort

2

Ohne IIS-Konfiguration ist es nicht möglich, die Anforderungen für "http: // {domain} /MyPage.ASP" neu in Ihr virtuelles Verzeichnis zu schreiben.

Derzeit wird Ihre Webanwendung niemals berücksichtigt, da diese Seite nicht in dem virtuellen Verzeichnis enthalten ist, dem sie in IIS zugeordnet ist. Sie müssen entweder Routen (und eine Web-App) im Stammverzeichnis der Website haben oder URL-Rewriting verwenden, um sie an Ihr vdir weiterzuleiten.

+0

Wie würde ich das in IIS konfigurieren? Meine andere Option besteht darin, einfach die ASP-Seite auszudünnen und ein Response.Redirect zu meiner MVC-Seite hinzuzufügen. Das funktioniert, aber es gibt auch den HttpInput-Stream nicht weiter. Sobald ich den MVC-Controller erreicht habe, ist der HttpInput-Stream leer. –

+0

@MichaelVelasquez Ich würde das URL Rewrite 2-Modul für IIS verwenden, das Sie hier erfahren können: http://forums.iis.net/1152.aspx und hier http://learn.iis.net/page.aspx/ 734/url-rewrite-modul/ –

+0

Ich benutze IIS6, und alle Verweise auf 7 lassen mich annehmen, dass es nur ein Feature in 7 ist? –