簡體   English   中英

如何在不更改 url 的情況下將某人重定向到錯誤頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM