Я использую UseStatusCodePagesWithReExecute в моем веб-приложении .NET Core 2.1 следующим образом
app.UseStatusCodePagesWithReExecute("/Error/{0}");
и в моем контроллере я указываю на 1 из 2 представлений, представление 404.cshtml и общее представление error.cshtml
public class ErrorController : Controller
{
[HttpGet("[controller]/{statusCode:int}")]
public IActionResult Error(int? statusCode = null)
{
if (statusCode.HasValue)
{
if (statusCode == (int)HttpStatusCode.NotFound)
{
return View(statusCode.ToString());
}
}
return View();
}
}
Теперь в моем контроллере страниц я могу сделать следующее, и все работает как положено. Это покажет error.cshtml
public IActionResult SomePage()
{
return BadRequest();
}
Теперь, если я изменю вышеприведенное на следующее, мой ErrorController действительно попадет, но к тому времени, когда в браузере загрузится пустое представление, показывающее только «Некоторые детали».
public IActionResult SomePage()
{
return BadRequest("Some details");
}
Есть идеи, почему? Я хочу, чтобы он загрузил error.cshtml