【发布时间】:2017-01-05 10:17:41
【问题描述】:
我是 asp.net core mvc 的新手。我需要编写全局异常处理和错误登录 palce..我不需要在每个控制器中都写下面的内容请帮助我在一个地方全局编写
这是我的代码
使用 Microsoft.AspNet.Diagnostics;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Mvc;
using Microsoft.Extensions.Logging;
namespace NS.Controllers
{
public class HomeController : Controller
{
static ILogger _logger;
public HomeController(ILoggerFactory factory)
{
if (_logger == null)
_logger = factory.Create("Unhandled Error");
}
public IActionResult Error()
{
var feature = HttpContext.Features.Get<IExceptionHandlerFeature>();
var error = feature?.Error;
_logger.LogError("Oops!", error);
return View("~/Views/Shared/Error.cshtml", error);
}
}
}
【问题讨论】:
-
你可以在
Configure()方法中使用app.UseExceptionHandler("/error"); -
谢谢..我不想在每个控制器中编写 public IActionResult Error(){} ..是否有任何方法可以全局编写 Error 函数?
-
它在您的应用程序中全局运行。当您收到异常
UseExceptionHandler()时,抓住它并重定向到指定的控制器和操作。所以实际上你可以使用单个ErrorController和Error动作。 -
好的,非常感谢您的快速回复..
-
请记住,目前还没有 MVC6。仅限 ASP.NET Core MVC 1.0 和 1.1
标签: c# asp.net-core asp.net-core-mvc