ASP.NETMVC&;C#:HttpStatusCodeResult()与HttpNotFound()的比较

ASP.NETMVC&;C#:HttpStatusCodeResult()与HttpNotFound()的比较,c#,.net,asp.net-mvc,http,C#,.net,Asp.net Mvc,Http,在ASP.NET MVC中,返回以下内容的区别是什么: return new HttpStatusCodeResult(HttpStatusCode.NotFound); 这是: return HttpNotFound(); 区别在于HttpStatusCodeResult使您能够更好地控制可以返回的HTTP状态代码,因为它允许您在HttpStatusCode枚举中指定任何预定义的状态代码HttpNotFound始终返回HTTP状态代码404。HttpNotFound()方法new Ht

在ASP.NET MVC中,返回以下内容的区别是什么:

 return new HttpStatusCodeResult(HttpStatusCode.NotFound);
这是:

 return HttpNotFound();

区别在于
HttpStatusCodeResult
使您能够更好地控制可以返回的HTTP状态代码,因为它允许您在
HttpStatusCode
枚举中指定任何预定义的状态代码
HttpNotFound
始终返回HTTP状态代码404。

HttpNotFound()方法
new HttpNotFoundResult(null)

所以问题是,
newhttpnotfoundresult(null)
newhttpstatuscodesult(HttpStatusCode.NotFound)
之间有什么区别

  • HttpNotFoundResult
    允许您通过检查类型(
    if(结果为HttpNotFoundResult)
    )以及检查状态代码(
    if(状态代码==404)
    )来测试返回代码
  • 返回HttpNotFound()更容易键入
否则没有区别。

HttpStatusCodeResult
HttpStatusCodeResult
的状态代码分类为
HttpStatusCode.NotFound

我认为问题不在于一般情况下
HttpStatusCodeResult
HttpNotFound
之间的区别(这真是一个愚蠢的问题)。更确切地说,它是关于新的HttpStatusCodeResult(HttpStatusCode.NotFound)
vs
HttpNotFound()
的。