我正在尝试为一个客户发出请求,如果这个客户不存在,它应该返回某种“未找到”的页面。以下哪一项是执行此类任务的最佳实践?为什么?
public ActionResult Index(int id)
{
if (customerService.GetCustomerById(id) == null)
return View("NotFound");
return View();
}
或
public ActionResult Index(int id)
{
if (customerService.GetCustomerById(id) == null)
throw new HttpException(404, "Customer not found");
return View();
}
发布于 2012-06-27 19:28:59
抛出404。这真的没有什么可争论的。这不是关于成为一个休息的门徒,而是网络是如何工作的。
你可以返回一个视图和一个404。帮助用户或显示搜索框或指向一些最畅销的商品通常是有帮助的,但要让客户清楚地知道NotFound,并且总是在HTTP响应中返回404。这一点毫无疑问。
编辑:这是很好的指导:http://www.codinghorror.com/blog/2007/03/creating-user-friendly-404-pages.html
发布于 2010-10-15 00:23:31
这是一个很好的问题(+1),因为对于何时使用HTTP异常代码以及何时不使用HTTP异常代码,存在一些不同的观点。
REST的追随者可能会告诉您使用HTTP异常路由,因为他们相信URI标识了一个概念资源(即:您引用的实际对象/事物-在本例中是一个客户),如果该资源不存在,那么您应该得到一个404错误。
然而,有些人不同意,他们说,只有在物理资源(例如文件)不存在的情况下,才应该传回404错误。
我倾向于第二个阵营,建议您返回200OK,并提供一个自定义视图,说明无法找到ID指定的客户。
https://stackoverflow.com/questions/3935298
复制相似问题