2009-04-18 10 views

Répondre

1

Dans IIS, configurez le document par défaut à index.html en haut de la liste?

Ou vous pouvez ajouter un IgnoreRoute à votre global.asax

 
public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.RouteExistingFiles = true; 
    routes.IgnoreRoute("{file}.html"); 
    ... 
+0

Vous pourriez avoir besoin de faire les deux. –

+0

Je pense que c'est le contraire de ce qu'il demande. il veut utiliser l'index.html car sa page d'accueil ne l'ignore pas. – Emad

0

Vous pouvez changer l'action du contrôleur par défaut en ajoutant ou en modifiant une route dans le fichier Global.asax.cs de votre projet.

Dans le modèle, ce qui suit est inclus:

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = null }); 

Si vous voulez pointer vers une action de contrôleur différent par défaut, il suffit de changer les valeurs du type anonyme sur la quatrième ligne de code ci-dessus.

1

Je trouve que sous IIS 6 au moins le pick-up de document par défaut a été perturbé lorsque vous avez utilisé un passe-partout générique pour acheminer la plupart des demandes dans le MVC .

Ma solution (juste pour le chemin racine dans mon cas) est la suivante: (en global.asax)

if (Request.Path == "" || Request.Path == "/" { Response.Redirect (Request.Path + "index.htm", true); retour; }

Ceci a ramassé la demande et l'a redirigée vers l'emplacement correct. Réécriture du chemin en utilisant Context.RewritePath (Request.Path + "index.htm"); au lieu de la redirection semble également fonctionner. Une autre révision serait probablement de voir si le caractère final du chemin est '/' et si c'est le cas vérifier si le fichier correspondant (thatpath/index.htm) existe et rediriger si c'est le cas ... cela permettrait effectivement à MVS de continuer à travailler tout en fournissant la logique de sorte que tous les dossiers qui existent qui ont un document par défaut comme celui-ci le serviront.

0

I ajouté

 routes.IgnoreRoute(""); 

à ma configuration d'itinéraire. Cela ignore le dossier racine et si vous avez un fichier index.html dans votre racine, il sera ramassé.

Questions connexes