Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何将参数传递给全局错误控制器?_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

Asp.net core 如何将参数传递给全局错误控制器?

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

我正在使用全局错误控制器处理ASP.NET核心MVC应用程序中的错误请求

我有

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"];
    //...
}