2010-06-30 6 views
9

Pracuję w witrynie, która jest częściowo statyczna i częściowo MVC. Źródłem strony jest index.html i wszystkie kontrolery są jawnie kierowane, a wszystkie pliki html są ignorowane. Kiedy jednak trafisz na katalog główny strony, spróbujesz go skierować. Jak mogę powiedzieć silnikowi trasy, aby zignorował katalog główny witryny? Witryny www.mysite.com nie należy routować, ale należy przejść do pliku index.html. Oto moja konfiguracja routingu:Uzyskiwanie MVC do ignorowania trasy do głównej lokalizacji

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("*.html|js|css|gif|jpg|jpeg|png|swf"); 

     routes.MapRoute(
      "vendor_signup","{vendor}/signup/{action}/", 
      new { controller = "Signup", action = "Index", vendor=UrlParameter.Optional} // Parameter defaults 
     ); 
     routes.MapRoute(
      "signup","signup/{action}/", 
      new { controller = "Signup", action = "Index", vendor=Vendors.PCICentral} // Parameter defaults 
     ); 
//more routes below 

Odpowiedz

3

Jedna z tras nadal znajdowała się w {}, co spowodowało, że spróbował on przetworzyć rdzeń.

+0

Cześć, to powyższy kod poprawny z tym ostatnim pomysłem? – JasonMenny

16

Wierzę, że masz na myśli to, że gdy ktoś wejdzie na stronę /, nie chcesz używać MVC, ale wyświetlasz statyczną stronę. Aby to osiągnąć, musisz poinformować MVC, aby zignorował tę trasę i pozwolił, aby webforms ją obsłużył. Formularze internetowe powinny następnie wyświetlać /index.html po otrzymaniu żądania /.

Wystarczy dodać to przed swoimi trasy powinny działać:

routes.IgnoreRoute(""); 
+0

Dodawanie tej trasy ignorowania nie działa. Otrzymuję: * Błąd HTTP 403.14 - Zabroniony Serwer sieci Web jest skonfigurowany tak, aby nie wyświetlał zawartości tego katalogu. * – Organic

+0

@Organic W takim przypadku sprawdź dokumenty domyślne. Albo nie masz pliku index.html lub podobnego, albo nie jest skonfigurowany w IIS. W IIS przejdź do swojej witryny i zajrzyj do właściwości "Default Document". Jeśli jeden z tych dokumentów istnieje, pokaże ten dokument, w przeciwnym razie otrzymasz to ostrzeżenie. –

Powiązane problemy