2013-01-18 7 views
6

Dla znacznej części mojej strony, chcę, aby normalny routing odbywał się w sposób MVC. Jednak po uruchomieniu aplikacji nie chcę, aby trasa przechodziła do /Home/Index.cshtml. Chcę, żeby iść po prostu /index.htmlW asp.net MVC4, w jaki sposób mogę domyślnie uruchomić mój plik główny index.html?

moich obecnych RegisterRoutes wygląda następująco (i nie osiągnąć mój cel)

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

czy zadałem dziwne pytanie? mając nadzieję na prostą odpowiedź –

+3

Ta odpowiedź jest tym, co chcesz, myślę. http://stackoverflow.com/questions/12417437/mvc4-is-there-a-way-to-route-the-root-to-a-normal-unprocessed-html-page –

Odpowiedz

1

nie wiem, jeśli wziąć pod uwagę to, w korzeń web.config należy ustawić:

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

nie trzeba niczego innego w RouteConfig.cs jeśli masz index.cshtml w katalogu głównym (plik może zawierać tylko kod HTML, oczywiście).

Ale jeśli chcesz obsługiwać (nie przetwarzać) tylko plik, to znaczy, index.html na przykład musisz również ustawić ten plik jako stronę początkową w projekcie i to wszystko, najprostszą odpowiedź.

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(); 
    } 

Mam nadzieję, że to pomoże!

0

Definiowanie tras dla wszystkich kontrolerów i usunąć domyślny katalog główny:

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

Nowy domyślny będzie index.html.

Powiązane problemy