2014-07-02 7 views
6

Czy DocumentationController jest zarezerwowany dla użycia systemu czy coś takiego?Kontroler MVC daje mi 403 zakazany błąd z domyślną trasą, gdy nazywa się DocumentationController

Stworzyłem pustą aplikację MVC, utworzyłem DocumentationController z odpowiednim widokiem. Działa, jeśli przejdę na numer www.mysite.com/Documentation/Index, ale jeśli przejdę do www.mysite.com/Documentation/, otrzymam zakaz 403.

Zmiana nazwy DocumentationController na Documentation2Controller i powiązane widoki, to (domyślna trasa, itp.) Działa idealnie.

Czy jest to zastrzeżone słowo kluczowe, czy może istnieje inny powód, dla którego nie wybiera domyślnej trasy?

+0

Czy upewnij się, że nie mają rzeczywisty katalog wirtualny/fizycznej nazwie „Dokumentacja”? – haim770

+3

O człowieku. Całkowicie to rozwiązałeś. Złota Gwiazda. Czy możesz to opublikować jako odpowiedź? W rozwiązaniu o nazwie Documentation znajduje się folder, a po zmianie jego nazwy został on naprawiony. Nie widzę powodu, dla którego powinno to wpłynąć, ponieważ powinno to wyglądać w widokach> MyControllerName> Index, ale tak się stało. – NibblyPig

+0

Może istnieć lepszy sposób na obsłużenie tego. Proszę pokazać 'RoutesConfig'. – haim770

Odpowiedz

30

Upewnij się, że nie masz rzeczywistego katalogu wirtualnego/fizycznego o nazwie Documentation.

Można również polecić MVC aby „przejąć” żądanie nawet wtedy, gdy pasuje do katalogu poprzez ustawienie flagi RouteExistingFiles true (w konfiguracji tras):

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.RouteExistingFiles = true; 

    //... 
} 
+1

Najlepsze porady. RoutesConfig jest domyślnie ustawiony, nie zmieniłem go. Po prostu nie zdawałem sobie sprawy, że będzie to sprzeczne z folderami, które mają taką samą nazwę jak kontroler. Bardzo doceniane. – NibblyPig

+2

Pierwsze zdanie z tej odpowiedzi pomogło mi! '' Upewnij się, że nie masz prawdziwego katalogu o nazwie ... '' W Visual Studio kliknąłem ikonę "Pokaż wszystkie pliki" i zdałem sobie sprawę, że istnieje folder o tej samej nazwie. (utworzony podczas wykonywania, ponieważ popełniłem błąd przy definiowaniu odpowiedniego katalogu) Kliknięcie Pokaż wszystkie pliki, ujawniło to. Usunąłem go i wszystko wróciło do normy .. –

+0

Wow, RouteExistingFiles = true nie było w moim RouteConfig.cs. Teraz działa! –

Powiązane problemy