2010-12-09 12 views
1

J'ai une application Web que j'utilise un itinéraire personnalisé pour acheminer http://domain/MyMVCSite/MyPage.ASP pour acheminer vers un contrôleur/action de mon choix.Question d'itinéraire personnalisé MVC: route d'un niveau supérieur?

Je ne suis pas familier avec le routage personnalisé, mais tel qu'il est, voici mon itinéraire personnalisé:

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

Comme je l'ai dit, cet itinéraire:

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

Je voudrais que pour la route:

http: // {domain} /MyPage.ASP

Est-ce possible? Comment est-ce que je modifierais l'itinéraire personnalisé?

Mon site MVC est déployé en tant que répertoire virtuel d'un site Web sur IIS6.

Répondre

2

Cela n'est pas possible sans configuration IIS pour réécrire les demandes de "http: // {domain} /MyPage.ASP" pour accéder à votre répertoire virtuel.

Actuellement, votre application Web ne sera jamais prise en compte, car cette page ne figure pas dans le répertoire virtuel auquel elle est mappée dans IIS. Vous devez disposer de routes (et d'une application Web) à la racine du site Web ou utiliser la réécriture d'URL pour la transférer vers votre vdir.

+0

Comment pourrais-je configurer cela dans IIS? Mon autre option consiste simplement à vider la page ASP et à ajouter un Response.Redirect à ma page MVC. Cela fonctionne, mais il ne passe pas le flux HttpInput aussi bien. Une fois arrivé au contrôleur MVC, le flux HttpInput est vide. –

+0

@MichaelVelasquez J'utiliserais le module URL Rewrite 2 pour IIS, que vous pouvez apprendre ici: http://forums.iis.net/1152.aspx et ici http://learn.iis.net/page.aspx/ 734/url-rewrite-module/ –

+0

J'utilise IIS6, et toutes les références à 7 me font supposer que c'est seulement une fonctionnalité dans 7? –