重定向到 404 錯誤頁面后,我想在錯誤控制器中獲取原始路徑(由用戶輸入)?!
public class ErrorViewModel
{
public string RequestId { get; set; }
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
public string RequestedUrl { get; set; }
public string RedirectUrl { get; set; }
public string ExceptionMessage { get; set; }
}
并在錯誤控制器中
return View("ErrorPage", new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier,
RequestedUrl = "", RedirectUrl = HttpContext.Request.GetDisplayUrl(), ExceptionMessage = ReasonPhrases.GetReasonPhrase(statusCode) });
uj5u.com熱心網友回復:
更新:
您也可以參考下面的方法。
啟動.cs:
app.UseStatusCodePagesWithReExecute("/Home/Error", "?statusCode={0}");
錯誤視圖模型.cs:
public class ErrorViewModel
{
public string RequestId { get; set; }
public bool ShowRequestId => !string.IsNullOrEmpty(RequestId);
public string RequestedUrl { get; set; }
public string RedirectUrl { get; set; }
public string ExceptionMessage { get; set; }
}
HomeController.cs:
public IActionResult Error()
{
var statusCode = HttpContext.Response.StatusCode;
ViewData["statusCode"] = statusCode;
var feauter = Request.HttpContext.Features.Get<IStatusCodeReExecuteFeature>();//=null
var path = feauter?.OriginalPath;
return View("ErrorPage", new ErrorViewModel
{
RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier,
RequestedUrl = path,
RedirectUrl = HttpContext.Request.GetDisplayUrl(),
ExceptionMessage = ReasonPhrases.GetReasonPhrase(statusCode)
});
}
錯誤頁面.cshtml:
@model ErrorViewModel
@{
ViewData["Title"] = "ErrorPage";
}
<h1 class="text-danger">@ViewData["statusCode"]</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
<div>RequestId :@Model.RequestId</div>
<div>ShowRequestId :@Model.ShowRequestId</div>
<div>RequestedUrl :@Model.RequestedUrl</div>
<div>RedirectUrl :@Model.RedirectUrl</div>
<div>ExceptionMessage:@Model.ExceptionMessage</div>
測驗結果:
以前的:
如果你想獲取請求 url 和重定向 url,我建議你可以使用RedirectToAction
方法。
請檢查下面的頁面,如果你想請告訴我。
在我的測驗代碼中,我還使用中間件來處理 302 事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/470868.html
標籤:asp.net-mvc asp.net 核心 重定向 错误处理 http-status-code-404
上一篇:禁止直接訪問nginx位置
下一篇:HTTP重定向不呈現新頁面