Asp.net core 如何将参数传递给全局错误控制器?
我正在使用全局错误控制器处理ASP.NET核心MVC应用程序中的错误请求 我有Asp.net core 如何将参数传递给全局错误控制器?,asp.net-core,asp.net-core-mvc,Asp.net Core,Asp.net Core Mvc,我正在使用全局错误控制器处理ASP.NET核心MVC应用程序中的错误请求 我有 app.UseStatusCodePagesWithReExecute("/error/{0}"); 在我的Startup.cs和ErrorController中的一个操作中,如下所示 [Route("Error/{statusCode}")] public IActionResult HttpStatusCodeHandler(int sta
app.UseStatusCodePagesWithReExecute("/error/{0}");
在我的Startup.cs和ErrorController中的一个操作中,如下所示
[Route("Error/{statusCode}")]
public IActionResult HttpStatusCodeHandler(int statusCode)
{
var feature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
ViewData["ErrorPathBase"] = feature?.OriginalPath;
ViewData["ErrorQuerystring"] = feature?.OriginalQueryString;
_logger
.ForContext("OriginalPath", feature?.OriginalPath)
.ForContext("OriginalQueryString", feature?.OriginalQueryString)
.Warning($"User has reached {statusCode} page.");
switch (statusCode)
{
case 404: return PartialView("_BadRequest");
case 400: return PartialView("_BadRequest");
case 403: return PartialView("_AccessDenied");
default: return PartialView("_BadRequest");
}
}
return NotFound("returnUrl"});
在我的应用程序中,会调用ErrorController。我如何传递一些额外的参数来像这样返回NotFound
[Route("Error/{statusCode}")]
public IActionResult HttpStatusCodeHandler(int statusCode)
{
var feature = HttpContext.Features.Get<IStatusCodeReExecuteFeature>();
ViewData["ErrorPathBase"] = feature?.OriginalPath;
ViewData["ErrorQuerystring"] = feature?.OriginalQueryString;
_logger
.ForContext("OriginalPath", feature?.OriginalPath)
.ForContext("OriginalQueryString", feature?.OriginalQueryString)
.Warning($"User has reached {statusCode} page.");
switch (statusCode)
{
case 404: return PartialView("_BadRequest");
case 400: return PartialView("_BadRequest");
case 403: return PartialView("_AccessDenied");
default: return PartialView("_BadRequest");
}
}
return NotFound("returnUrl"});
仍然点击HttpStatusCodeHandler操作?您可以为此使用
HttpContext.Items
HttpContext.Items["SomeItem"] = "Some value";
return NotFound();
错误控制器
[Route("Error/{statusCode}")]
public IActionResult HttpStatusCodeHandler(int statusCode)
{
object someItem = HttpContext.Items["SomeItem"];
//...
}