gpt4 book ai didi

javascript - 在不重写 URL 的情况下显示自定义 ASP.NET 错误页面

转载 作者:行者123 更新时间:2023-11-29 10:47:53 24 4
gpt4 key购买 nike

目前在 ASP.NET 中为我的网站处理错误页面。如果服务器无法找到请求的页面,我正在使用 Web 配置文件将用户重定向到错误页面。下面是我在配置文件中使用的 customErrors 标签:

<customErrors mode="On" defaultRedirect="~/ErrorPages/Error.aspx">
<error statusCode="404" redirect="~/ErrorPages/Error.aspx"/>
</customErrors>

它目前正在运行,但我的问题是我不希望用户在 URL 中看到我的错误页面,如下所示:

/MySite/ErrorPages/Error.aspx?aspxerrorpath=/MySite/ImaginaryPage.aspx

我期待像谷歌那样的东西: Google Error Page

没有 Javascript 有没有办法做到这一点?

最佳答案

这篇文章可能会对您有所帮助,以下是其中的一个片段: http://blog.dmbcllc.com/aspnet-application_error-detecting-404s/

void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpException)
{
if (((HttpException)(ex)).GetHttpCode() == 404)
Server.Transfer("~/Error404.aspx");
}
}

真正的关键部分是,如果您想维护与所请求的相同的 URL,那么 Response.Redirect 不是您想要的,因为它返回到客户端发出第二个请求从而更改 URL。您希望保留在服务器上,因此适当的调用将是 Server.Transfer。这个特定的事件处理程序进入您的 Global.asax.cs 文件,该方法将针对在您的应用程序上下文中关联的任何 404 出现。

不幸的是,它将跳过您的 customErrors 配置部分并依赖于更编程的方法,但是从维护的 Angular 来看代码相当简单。

关于javascript - 在不重写 URL 的情况下显示自定义 ASP.NET 错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16054809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com