Поскольку Back
не возвращает ViewResult
- он возвращает RedirectToActionResult
(вы можете навести курсор на RedirectToAction, чтобы увидеть точное имя объекта). Оба они реализуют IActionResult
.
. Вы получаете исключение Null Reference, потому что, когда вы используете ключевое слово as
для приведения объектов, оно вернет null, если преобразование невозможно.
Если бы вместо этого у вас было
var result = (ViewResult)controller.Back();
Во время выполнения этой строки вы получите исключение разницы, говорящее о том, что преобразование невозможно.
Вы должны выполнить преобразование, выполнив один из этих методов:
var result = (RedirectToActionResult)controller.Back();
или
var result = controller.Back() as RedirectToActionResult;