Maison > Article > interface Web > Analyse approfondie de la page 404 personnalisée mvc4 dans asp.net (partage)
Dans l'article précédent "Un article expliquant l'utilisation du proxy proxy ES6 dans JS (partage de code) ", nous avons découvert l'utilisation du proxy proxy ES6 dans JS. L'article suivant vous aidera à comprendre la page 404 personnalisée mvc4 dans asp.net. Elle a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Bien sûr, il existe de nombreuses façons de définir 404. Différentes méthodes présentent différentes formes et l'expérience utilisateur est également différente. Voici deux
1. Recherchez la section 2dc15ec6bc814c3aa45b55d017848bed
dans web.config
et cliquez pour activer 404
. >Configuration 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
指向的页面,最终还是会跳转到默认错误黄页。
Cette méthode est par défaut votre解决这个问题的办法很简单就是在
rrreeeApplication_Error
方法中使用Response.Redirect
做跳转前,先调用Server.ClearError()
方法告诉系统发生的异常错误已经被处理了,这样再调用Response.Redirect
rrreee
2. Définissez unecontrollersError
(cela dépend de vous), et définissez-la comme suit dansaction
. url
Ajouter ?aspxerrorpath=/
Par exemple : http://localhost/Error??aspxerrorpath=/123456
Par conséquent, il n'est pas recommandé d'essayer Ouvrez le fichier Global.asax
et définissez l'adresse de redirection d'erreur (contrôleur/action)
🎜rrreee🎜🎜Remarques : Lors du développement, nous utilisons souvent Global.asaxResponse.Redirect
dans /code> est utilisée pour accéder à la page d'erreur personnalisée, mais parfois (surtout lorsque le site est déployé sur IIS) La méthode .Redirect
utilisée dans la méthode >Application_Error sera invalide. Lorsqu'une erreur anormale se produit, les pages jaunes d'erreur par défaut seront toujours affichées. 🎜🎜🎜🎜La cause première est que bien que nous ayons utilisé la méthode Response.Redirect
dans la méthode Application_Error
, lorsqu'une erreur d'exception se produit dans le système Asp.Net code> pense que l'exception n'a pas été gérée, elle ne passera donc pas à la page pointée par <code>Response.Redirect
dans la méthode Application_Error
, et finira par sauter aux pages jaunes d’erreur par défaut. 🎜🎜🎜🎜Le moyen simple de résoudre ce problème est d'utiliser Response.Redirect
dans la méthode Application_Error
pour faire un saut avant d'appeler Server.ClearError() indique au système que l'erreur d'exception survenue a été traitée, de sorte que si vous appelez à nouveau la méthode <code>Response.Redirect
, le système passera à la page d'erreur personnalisée. 🎜🎜🎜🎜Apprentissage recommandé : 🎜Tutoriel vidéo asp.net🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!