2017-05-05 2 views
0

Kann jemand erklären, warum meine benutzerdefinierten Fehlerseiten in MVC mit Windows-Authentifizierung funktionieren, wenn ich auf http://localhost:port/controler/blabla/blabla zugreifen, aber wenn ich versuche, auf http://localhost:port/controler/action/blabla/blabla zugreifen, ruft es nicht meine benutzerdefinierten 404-Seite aber zeigt ein leeres Fenster.404-Seite wird nicht jedes Mal in MVC behandelt

Zum Beispiel, wenn ich http://localhost:port/Home/blabla/blabla aufrufen, wird meine benutzerdefinierte Seite aufgerufen; aber wenn ich (die gleiche URL mit Aktion hinzugefügt) aufrufen, zeigt es die leere Seite. Ist es etwas mit meiner Konfiguration?

Meine config:

<customErrors mode="On" defaultRedirect="~/UnAuthorized/ErrorDefault/?error=1"> 
    <error statusCode="404" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/> 
    <error statusCode="403" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/> 
    <error statusCode="500" redirect="~/UnAuthorized/ErrorDefault/?error=1"/> 
</customErrors> 

<httpErrors errorMode="Custom"> 
    <remove statusCode="404" subStatusCode="-1"/> 
    <remove statusCode="403" subStatusCode="-1"/> 
    <remove statusCode="500" subStatusCode="-1"/> 
    <error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="" path="~/UnAuthorized/ErrorResourceNotFound/?error=1" responseMode="ExecuteURL" /> 
    <error statusCode="403" subStatusCode="-1" path="~/UnAuthorized/ErrorResourceNotFound/?error=1" responseMode="ExecuteURL" /> 
    <error statusCode="500" subStatusCode="-1" path="~/UnAuthorized/TestPage" responseMode="ExecuteURL" /> 
</httpErrors> 
+0

Ich würde sagen, 'http: // localhost: port/Home/blabla/blabla 'wird versuchen' HomeController.blabla (blabla) 'aufzurufen, wo die' blabla' Aktion nicht existiert (und daher zu 404 umgeleitet wird), und 'http: // localhost: port/Home/Index/blabla ruft' auf HomeController.Index (blabla) ', wo die 'Index'-Aktion existiert. – gobes

+0

mögliches Duplikat von http://stackoverflow.com/questions/310580/how-can-i-make-a-catch-all-route-to-handle-404-page-not-found-queries-for-asp –

Antwort

0

Verwenden Redirect-Modus als "ResponseRedirect" in benutzerdefinierte Fehler Tag wie

<customErrors mode="On" defaultRedirect="~/UnAuthorized/ErrorDefault/?error=1" redirectMode="ResponseRedirect"> 
    <error statusCode="404" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1" /> 
<error statusCode="403" redirect="~/UnAuthorized/ErrorResourceNotFound/?error=1"/> 
    <error statusCode="500" redirect="~/UnAuthorized/ErrorDefault/?error=1"/> 
</customErrors> 
Verwandte Themen