Heim  >  Artikel  >  Web-Frontend  >  Eingehende Analyse der benutzerdefinierten 404-Seite von mvc4 in asp.net (Teilen)

Eingehende Analyse der benutzerdefinierten 404-Seite von mvc4 in asp.net (Teilen)

奋力向前
奋力向前nach vorne
2021-08-27 11:11:542878Durchsuche

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.

Eingehende Analyse der benutzerdefinierten 404-Seite von mvc4 in asp.net (Teilen)

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

Methoden 1

1 aufgeführt. Suchen Sie den Abschnitt 2dc15ec6bc814c3aa45b55d017848bed in web.config und klicken Sie, um 404zu 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指向的页面,最终还是会跳转到默认错误黄页。

解决这个问题的办法很简单就是在Application_Error方法中使用Response.Redirect做跳转前,先调用Server.ClearError()方法告诉系统发生的异常错误已经被处理了,这样再调用Response.Redirectrrreee
2. Definieren Sie einen controllersError (dies liegt bei Ihnen) und definieren Sie ihn wie folgt in action

rrreee
Diese Methode ist standardmäßig auf Ihren eingestellt URL Fügen Sie ?aspxerrorpath=/ hinzu. Zum Beispiel: http://localhost/Error??aspxerrorpath=/123456 Daher wird es nicht empfohlen, es zu versuchen

Methode 2:

Ö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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:chuchur.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen