В этот учебник в деталях действий, которые использует Скотт
if (dinner == null)
return View("NotFound");
else
return View("Details", dinner);
для возврата 404 сообщения Not Found.
Но в моем скачанном исходном коде для NerdDinner есть следующие строки:
if (dinner == null) {
return new FileNotFoundResult { Message = "No Dinner found for that id" };
}
Это идет к FileNotFoundResult, где есть это:
public class FileNotFoundResult : ActionResult
{
public string Message {
get;
set;
}
public override void ExecuteResult(ControllerContext context) {
throw new HttpException(404, Message);
}
}
И это все. Как ссылка на представление NotFound.aspx сделана здесь? Мне не удалось выяснить, как это сопоставляется с NotFound.aspx, хотя NotFound.aspx действительно существует в папке просмотра Dinners.
В web.config тоже ничего нет.
Приведенный выше код взят из набора изменений 41262, а не версии 1.0.
Вопрос (чтобы быть более ясным): почему «throw new HttpException (404, message)» возвращает представление NotFound ??
Кто-то, пожалуйста, объясните.