>  기사  >  웹 프론트엔드  >  asp.net의 mvc4 사용자 정의 404 페이지에 대한 심층 분석(공유)

asp.net의 mvc4 사용자 정의 404 페이지에 대한 심층 분석(공유)

奋力向前
奋力向前앞으로
2021-08-27 11:11:542883검색

이전 기사 "JS에서 ES6 프록시 프록시 사용을 설명하는 기사(코드 공유) "에서는 JS에서 ES6 프록시 프록시를 사용하는 방법에 대해 배웠습니다. 다음 기사는 asp.net의 mvc4 사용자 정의 404 페이지를 이해하는 데 도움이 될 것입니다. 이는 특정 참조 값을 가지고 있으므로 도움이 필요할 수 있습니다.

asp.net의 mvc4 사용자 정의 404 페이지에 대한 심층 분석(공유)

물론 404를 정의하는 방법에는 여러 가지가 있습니다. 다른 방법은 다른 형태를 나타내며 사용자 경험도 다릅니다. 다음은 두 가지

방법입니다 1

1 web.config에서 2dc15ec6bc814c3aa45b55d017848bed 섹션을 찾아 클릭하여 404를 활성화합니다. >구성 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. controllersError를 정의하고(이것은 귀하에게 달려 있음) action에서 다음과 같이

rrreee
를 정의합니다. url ?aspxerrorpath=/ 추가 예: http://localhost/Error??aspxerrorpath=/123456 따라서

를 시도하지 않는 것이 좋습니다. 방법 2:

Global.asax 파일을 열고 오류 리디렉션 주소 (controller/action)🎜rrreee🎜🎜를 정의합니다. 참고: 개발 중에는 를 자주 사용합니다. >Global.asax의 <code>Response.Redirect 메서드는 사용자 정의 오류 페이지로 이동하는 데 사용되지만 때로는(특히 사이트가 IIS에 배포된 경우) 응답 >Application_Error 메소드에 사용된 .Redirect 메소드는 유효하지 않습니다. 비정상적인 오류가 발생하면 기본 오류 노란색 페이지가 계속 표시됩니다. 🎜🎜🎜🎜근본적인 이유는 Application_Error 메서드에서 Response.Redirect 메서드를 사용했음에도 불구하고 Asp.Net 시스템에서 예외 오류가 발생한 경우입니다. code>는 예외가 처리되지 않았다고 믿기 때문에 <code>Application_Error 메서드의 Response.Redirect가 가리키는 페이지로 점프하지 않고 결국 점프하게 됩니다. 기본 오류 전화번호부로 이동합니다. 🎜🎜🎜🎜이 문제를 해결하는 간단한 방법은 Server.ClearError()Application_Error 메서드에서 Response.Redirect를 사용하여 점프하는 것입니다. /code> 메서드는 발생한 예외 오류가 처리되었음을 시스템에 알리므로 Response.Redirect 메서드를 다시 호출하면 시스템이 사용자 지정 오류 페이지로 이동합니다. 🎜🎜🎜🎜추천 학습: 🎜asp.net 비디오 튜토리얼🎜🎜

위 내용은 asp.net의 mvc4 사용자 정의 404 페이지에 대한 심층 분석(공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 chuchur.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제