首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC - HttpException还是return视图?

ASP.NET MVC - HttpException还是return视图?
EN

Stack Overflow用户
提问于 2010-10-15 00:17:44
回答 2查看 3.8K关注 0票数 19

我正在尝试为一个客户发出请求,如果这个客户不存在,它应该返回某种“未找到”的页面。以下哪一项是执行此类任务的最佳实践?为什么?

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();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-27 19:28:59

抛出404。这真的没有什么可争论的。这不是关于成为一个休息的门徒,而是网络是如何工作的。

你可以返回一个视图和一个404。帮助用户或显示搜索框或指向一些最畅销的商品通常是有帮助的,但要让客户清楚地知道NotFound,并且总是在HTTP响应中返回404。这一点毫无疑问。

编辑:这是很好的指导:http://www.codinghorror.com/blog/2007/03/creating-user-friendly-404-pages.html

票数 6
EN

Stack Overflow用户

发布于 2010-10-15 00:23:31

这是一个很好的问题(+1),因为对于何时使用HTTP异常代码以及何时不使用HTTP异常代码,存在一些不同的观点。

REST的追随者可能会告诉您使用HTTP异常路由,因为他们相信URI标识了一个概念资源(即:您引用的实际对象/事物-在本例中是一个客户),如果该资源不存在,那么您应该得到一个404错误。

然而,有些人不同意,他们说,只有在物理资源(例如文件)不存在的情况下,才应该传回404错误。

我倾向于第二个阵营,建议您返回200OK,并提供一个自定义视图,说明无法找到ID指定的客户。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3935298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档