Maison > interface Web > Tutoriel H5 > le corps du texte

Analyse approfondie de la page 404 personnalisée mvc4 dans asp.net (partage)

奋力向前
Libérer: 2021-08-27 11:11:54
avant
2748 Les gens l'ont consulté

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.

Analyse approfondie de la page 404 personnalisée mvc4 dans asp.net (partage)

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

méthodes 1

1. Recherchez la section <system.web> dans web.config et cliquez pour activer 404. >Configuration web.config中找到节<system.web>点中启用404配置 

<customErrors defaultRedirect="~/Error" mode="On" redirectMode="ResponseRedirect">
<error redirect="/Error" statusCode="404" />
</customErrors>
Copier après la connexion

2、定义一个controllersError(这个随你) ,在action中如下定义

public ActionResult Index()
{
    Response.Status = "404 Not Found";
    Response.StatusCode = 404;
    return View();
}
Copier après la connexion

这种方式默认为给你的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");
    }
}
Copier après la connexion

注意事项: 在开发时候,我们经常会在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. Définissez une controllersError (cela dépend de vous), et définissez-la comme suit dans action

rrreee
Cette méthode est par défaut votre . url Ajouter ?aspxerrorpath=/ Par exemple : http://localhost/Error??aspxerrorpath=/123456 Par conséquent, il n'est pas recommandé d'essayer

Méthode 2 :

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!

Étiquettes associées:
source:chuchur.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!