【发布时间】:2012-06-28 00:28:12
【问题描述】:
我开始切换我的控制器以使用模型绑定器进行 GET 操作,而不是使用 int 参数。我的普通控制器 GET 操作如下所示...
public ActionResult Details(int id)
{
DomainModel model = repository.GetById(id);
if (model == null)
{
throw new HttpException(404, "Item does not exist")
}
//Continue along with our controller action
}
当切换到 ModelBinder 时,我想在 BindModel 方法中抛出 HttpException,但是我不确定这是否被认为是一种好的编程习惯。控制器是否负责抛出 404 或 ModelBinder?
【问题讨论】:
-
为什么要从 int 切换控制器操作?
-
@Mark 所以我不必一直向数据库写入查询以通过 id 获取模型
-
但无论如何,您必须访问数据库才能获取正确的详细信息?
-
@Mark 是的,这只会减少我的控制器操作中的代码量。我仍然需要访问数据库。
标签: c# .net asp.net-mvc exception http-status-code-404