Назначение метода Error в шаблоне проекта asp.net Core 2.0 MVC

avatar
niico
7 апреля 2018 в 22:32
366
1
0

Я новичок в asp.net Core 2.0.

Когда вы создаете новый проект ASP.net Core 2.0 MVC (веб-приложение (модель-представление-контроллер)), вы получаете HomeController с методами Index(), About() и Contact(), как в MVC 5.

Однако вы также получаете это:

public IActionResult Error()
{
    return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}

Я не могу найти никакой документации в Google или каких-либо книгах относительно того, для чего это нужно и какова цель одной строки кода.

Кто-нибудь может объяснить это? Это какая-то передовая практика — стоит ли нам ее использовать?

Спасибо.

Источник

Ответы (1)

avatar
Horlarme
7 апреля 2018 в 22:51
0

Если позволит время, я постараюсь обновить свой ответ. Но пока краткое объяснение состоит в том, что каждый общедоступный метод в вашем контроллере может вызываться как конечная точка http. Например, метод index в вашем HomeController отображает ваше представление index.cshtml, About отображает представление about.cshtml и так далее. В частности, общедоступный метод IActionResult Error() вызывается, если вы перенаправляете пользователя на действие при возникновении ошибки. Следовательно, он возвращает представление ошибок, содержащее информацию об ошибке, такую ​​как RequestId и другие значения, связанные с ErrorViewModel.

Надеюсь, пока эта помощь.

niico
7 апреля 2018 в 23:00
0

Вы уверены? Я выдал исключение в методе действия (сбросьте новое исключение ArgumentException("a","b") - и отладчик никогда не попадет в метод Error().

Horlarme
7 апреля 2018 в 23:12
0

Вызов метода Error() не является автоматическим. Один из способов обратиться к нему — перенаправить пользователя на действие при возникновении ошибки или исключения с помощью вызова RedirectToAction("Error").