[英]How to redirect someone to the error page without changing the url
我正在使用 C# 和 asp.net 開發“錯誤 404”頁面。 問題是,當用戶鍵入www.example.com/asdasd時,他被重定向到我的錯誤 404 頁面,但我希望 url 保持不變。
例如,用戶鍵入“www.example.com/asdasd”,我想保留“www.example.com/asdasd”而不是“www.example.com/error”(這是我的錯誤 404 頁面的名稱我錯誤地重定向)。
這是我的 web.config 文件中的“自定義錯誤”
<customErrors mode="On" defaultRedirect="~/error/" redirectMode="ResponseRedirect">
<error statusCode="404" redirect="~/error/" />
</customErrors>
這是我在 Global.asax 中的 function
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex is HttpException && ((HttpException)ex).GetHttpCode() == 404)
{
Response.Redirect("~/error");
}
}
有什么想法或建議嗎?
嘗試類似:Server.Transfer("~/error")。 這會將請求服務器端“傳輸”到所需的頁面,而無需重定向(這涉及到對錯誤頁面的響應和另一個請求)。
在Startup.cs
class 的Configure
方法中使用UseStatusCodePagesWithReExecute
中間件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseStatusCodePagesWithReExecute("~/error");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.