在ASP.NET MVC中,返回以下内容有什么区别:
return new HttpStatusCodeResult(HttpStatusCode.NotFound);
这:
return HttpNotFound();
答案 0 :(得分:4)
区别在于HttpStatusCodeResult
使您可以控制返回的HTTP状态码,因为它允许您在HttpStatusCode
枚举中指定任何预定义的状态码。 HttpNotFound
始终返回HTTP状态代码404。
答案 1 :(得分:3)
HttpNotFound()
方法returns new HttpNotFoundResult(null)
。
问题是new HttpNotFoundResult(null)
和new HttpStatusCodeResult(HttpStatusCode.NotFound)
有什么区别?
HttpNotFoundResult
除了检查状态码(if (result is HttpNotFoundResult)
)之外,还可以通过检查类型(if (StatusCode == 404)
)来测试返回码。return HttpNotFound();
易于键入。否则没有区别。
HttpNotFoundResult
类simply sets HttpStatusCodeResult
的状态代码为HttpStatusCode.NotFound
。
答案 2 :(得分:-1)
查看此页面,HttpNotFound由HttpStatusCodeResult页面生成,在HttpNotFound中,您只能使用这种类型的消息。但是HttpStatusCodeResult允许使用其他类型的HttpStatuts,例如成功,内部错误等。
https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.httpnotfoundresult?view=aspnet-mvc-5.2