【发布时间】:2010-02-15 22:28:48
【问题描述】:
在this 教程中斯科特使用的细节操作
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 中也没有任何内容..
以上代码来自 Change Set 41262 而非 1.0 版本。
问题(更清楚一点):“throw new HttpException(404, message)”怎么会返回 NotFound 视图??
请有人解释一下。
【问题讨论】:
标签: asp.net asp.net-mvc nerddinner