2014-07-02 8 views
6

DocumentationController riservato per l'utilizzo del sistema o qualcosa del genere?Il controller MVC mi dà un errore 403 vietato con il percorso predefinito quando si chiama DocumentationController

Ho creato un'app vuota MVC, creato un DocumentationController con visualizzazione corrispondente. Funziona se vado a www.mysite.com/Documentation/Index ma se vado a www.mysite.com/Documentation/ allora ottengo un 403 proibito.

Rinominare DocumentationController a Documentation2Controller e viste associate, esso (la route predefinita, ecc.) Funziona perfettamente.

È una parola chiave riservata o potrebbe esserci un altro motivo per cui non rileva il percorso predefinito?

+0

Avete fatto sicuro che non si dispone di una directory virtuale/fisico chiamato 'Documentazione'? – haim770

+3

Oh uomo. L'hai completamente risolto. Stella d'Oro. Puoi postarlo come risposta? C'è una cartella nella soluzione chiamata Documentazione e dopo averla rinominata, l'ha riparata. Non vedo perché questo dovrebbe influire sul fatto che dovrebbe essere visualizzato in Views> MyControllerName> Index ma lo ha fatto. – NibblyPig

+0

Potrebbe esserci un modo migliore per gestirlo. Si prega di mostrare il tuo 'RoutesConfig'. – haim770

risposta

30

Assicurarsi di non disporre di una directory virtuale/fisica effettiva denominata Documentation.

È inoltre possibile istruire MVC a 'prendere in consegna' richiesta anche quando si corrisponde a una directory impostando il flag RouteExistingFiles true (nella configurazione Routes):

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

    //... 
} 
+1

Consiglio superiore. Il RouteConfig è solo quello predefinito, non l'ho cambiato. Semplicemente non mi ero reso conto che sarebbe in conflitto con le cartelle che hanno lo stesso nome del controller. Molto apprezzato. – NibblyPig

+2

La prima frase di questa risposta mi ha aiutato! '' Assicurati di non avere una directory effettiva chiamata ... '' In Visual Studio, ho fatto clic sull'icona per '' Mostra tutti i file '' e ho realizzato che esiste una cartella con lo stesso nome. (creato durante il runtime da quando ho commesso un errore nel definire la directory giusta per esso) Facendo clic su Mostra tutti i file, lo ha rivelato. L'ho cancellato e tutto è tornato normale ... –

+0

Wow, il RouteExistingFiles = true mancava dal mio RouteConfig.cs. Ora sta funzionando! –

Problemi correlati