2013-01-18 6 views
6

Per gran parte del mio sito Web, voglio che il routing normale avvenga in modo MVC. Tuttavia, quando l'app si avvia per la prima volta, non voglio che la rotta vada a /Home/Index.cshtml. Voglio che vada a semplicemente /index.htmlCon asp.net MVC4, come posso rendere il mio index.html di root eseguito per impostazione predefinita?

miei RegisterRoutes attuali si presenta così (e non raggiungere il mio obiettivo)

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("index.html"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
    } 
+0

ho fatto una strana domanda? sperando in una risposta semplice –

+3

Questa risposta è ciò che vuoi che io pensi. http://stackoverflow.com/questions/12417437/mvc4-is-there-a-way-to-route-the-root-to-a-normal-unprocessed-html-page –

risposta

1

non so se si prende questo in considerazione, in radice web.config è necessario impostare:

<appSettings> 
    <add key="webpages:Enabled" value="true" /> 
</appSettings> 

non hai bisogno di niente altro nelle RouteConfig.cs se avete un index.cshtml nella root (questo file può contenere solo il codice html naturalmente).

Ma se si vuole servire (non elaborare) solo il file, voglio dire, index.html per esempio è necessario anche impostare questo file come pagina iniziale nel progetto e questo è tutto, risposta più semplice.

7
public ActionResult Index() { 
     string FilePath = Server.MapPath("~/index.html"); 
     // You can add other conditions also here 
     if (System.IO.File.Exists(FilePath)) { 
      return File(FilePath, "text/html"); 
     } 
     return View(); 
    } 

Spero che questo aiuti!

0

Definire i percorsi per tutti i controller e rimuovere la radice di default:

  name: "Default", 
      url: "{controller}/{action}/{id}", 

La nuova impostazione predefinita sarà index.html.