Heim > Artikel > Web-Frontend > Eingehende Analyse der benutzerdefinierten 404-Seite von mvc4 in asp.net (Teilen)
Im vorherigen Artikel „Ein Artikel zur Erläuterung der Verwendung von ES6-Proxy-Proxy in JS (Code-Sharing) “ haben wir etwas über die Verwendung von ES6-Proxy-Proxy in JS erfahren. Der folgende Artikel wird Ihnen helfen, die benutzerdefinierte 404-Seite von mvc4 in asp.net zu verstehen. Ich hoffe, dass er für Freunde hilfreich ist.
Natürlich gibt es viele Möglichkeiten, 404 zu definieren. Unterschiedliche Methoden stellen unterschiedliche Formen dar und auch die Benutzererfahrung ist unterschiedlich. Im Folgenden sind zwei
1 aufgeführt. Suchen Sie den Abschnitt 2dc15ec6bc814c3aa45b55d017848bed
in web.config
und klicken Sie, um 404
zu aktivieren >Konfiguration web.config
中找到节2dc15ec6bc814c3aa45b55d017848bed
点中启用404
配置
<customErrors defaultRedirect="~/Error" mode="On" redirectMode="ResponseRedirect"> <error redirect="/Error" statusCode="404" /> </customErrors>
2、定义一个controllersError
(这个随你) ,在action
中如下定义
public ActionResult Index() { Response.Status = "404 Not Found"; Response.StatusCode = 404; return View(); }
这种方式默认为给你的url
加上?aspxerrorpath=/
比如:http://localhost/Error??aspxerrorpath=/123456
故不推荐试用
打开Global.asax
文件定义错误转向地址(controller/action)
protected void Application_Error(object sender, EventArgs e) { Exception ex = Server.GetLastError(); if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 404) { Response.Redirect("/Error"); } }
注意事项: 在开发时候,我们经常会在
Global.asax
中的Application_Error
方法中使用Response.Redirect
方法跳转到自定义错误页,但有时候(特别是当站点部署到 IIS 后)Application_Error
方法中使用Response.Redirect
方法会失效,当发生异常错误后还是显示的默认错误黄页。
其根本原因是尽管我们在
Application_Error
方法中使用了Response.Redirect
方法,但是当系统发生异常错误后Asp.Net
认为异常并没有被处理,所以不会跳转到Application_Error
方法中Response.Redirect
指向的页面,最终还是会跳转到默认错误黄页。
Diese Methode ist standardmäßig auf Ihren解决这个问题的办法很简单就是在
rrreeeApplication_Error
方法中使用Response.Redirect
做跳转前,先调用Server.ClearError()
方法告诉系统发生的异常错误已经被处理了,这样再调用Response.Redirect
rrreee
2. Definieren Sie einencontrollersError
(dies liegt bei Ihnen) und definieren Sie ihn wie folgt inaction
eingestellt URL
Fügen Sie ?aspxerrorpath=/
hinzu. Zum Beispiel: http://localhost/Error??aspxerrorpath=/123456
Daher wird es nicht empfohlen, es zu versuchen Öffnen Sie die Datei Global.asax
und definieren Sie die Fehlerumleitungsadresse (controller/action)
🎜rrreee🎜🎜Hinweise: Während der Entwicklung verwenden wir häufig Global.asaxResponse.Redirect
-Methode in /code> wird verwendet, um zur benutzerdefinierten Fehlerseite zu springen, aber manchmal (insbesondere, wenn die Site in IIS bereitgestellt wird) Response Die in der Methode >Application_Error
verwendete Methode .Redirect ist ungültig. Wenn ein ungewöhnlicher Fehler auftritt, werden weiterhin die standardmäßigen gelben Fehlerseiten angezeigt. 🎜🎜🎜🎜Der Hauptgrund ist, dass, obwohl wir die Methode Response.Redirect
in der Methode Application_Error
verwendet haben, im System Asp.Net ein Ausnahmefehler auftritt code> geht davon aus, dass die Ausnahme nicht behandelt wurde, und springt daher nicht zu der Seite, auf die <code>Response.Redirect
in der Methode Application_Error
zeigt, sondern springt schließlich zu den standardmäßigen Fehler-Gelben Seiten. 🎜🎜🎜🎜Die einfache Möglichkeit, dieses Problem zu lösen, besteht darin, Response.Redirect
in der Methode Application_Error
zu verwenden, um vor dem Aufruf von Server.ClearError()-Methode teilt dem System mit, dass der aufgetretene ungewöhnliche Fehler behandelt wurde, sodass das System bei einem erneuten Aufruf der <code>Response.Redirect
-Methode zur benutzerdefinierten Fehlerseite springt. 🎜🎜🎜🎜Empfohlenes Lernen: 🎜asp.net-Video-Tutorial🎜🎜Das obige ist der detaillierte Inhalt vonEingehende Analyse der benutzerdefinierten 404-Seite von mvc4 in asp.net (Teilen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!