2010-06-10 9 views
2

J'ajoute quelques fonctionnalités MVC à un site existant (FWIW, dont la plupart est en ASP classique). Par conséquent, je dois garder le routage par défaut à ~/default.asp (au minimum - de préférence le document par défaut spécifié dans IIS).Obtenir la route par défaut de MVC pour aller à ~/default.asp

Est-il possible d'écrire la route en RegisterRoutes de sorte qu'une demande de la racine du site (par exemple, http://localhost, http://localhost/ ou http://localhost/default.asp) va obtenir directement la page par défaut, et ne pas essayer de trouver un contrôleur/action ? Ou dois-je écrire mon propre HttpModule qui va le filtrer et l'empêcher d'accéder au MvcHandler (comme dans this blog)? Par ailleurs, la plupart des hits sont pour MVC version 1 ou plus ancienne, et le routage par défaut semble avoir changé dans la version 2 (ie, il n'y a plus de default.aspx qui redirige vers ~/Home), ils ne sont donc pas directement applicables. Même ainsi, ceux qui étaient là n'ont pas résolu ce problème.

Répondre

3

Maarten Balliauw a écrit un bel artice sur mixing ASP.NET Webforms and ASP.NET MVC. La chose dont vous avez besoin de l'article est la partie où vous dites MVC ne pas acheminer certains itinéraires:

Dans votre cas, ce serait:

routes.IgnoreRoute("default.asp/{*pathInfo}"); // If you don't pass arguments just use default.asp 
routes.IgnoreRoute(""); 

Après ces ignores, fournissez vos lignes régulières MVC. De cette façon MVC ignorera ces routes et laissera Webforms les manipuler. Pourvu que / pointe vers /default.asp dans Webforms, cela devrait fonctionner. Cependant, je n'ai pas testé cela ...

+0

Je n'avais pas pensé à "IgnoreRoute (" ")". Thansk –