Asp.net mvc 5 如何从JsonResult控制器返回404?
在ASP.NET MVC5中,我有一个返回类型为Asp.net mvc 5 如何从JsonResult控制器返回404?,asp.net-mvc-5,jsonresult,Asp.net Mvc 5,Jsonresult,在ASP.NET MVC5中,我有一个返回类型为JsonResult的控制器 根据参数,我想返回404,因为这是对请求不存在数据的用户的描述 我可以抛出新的HttpException(404,“message”),但考虑到返回HttpNotFound()语法,这感觉很糟糕。当然,这不起作用,因为HttpNotFoundResult不会继承JsonResult 我应该如何从JsonResult控制器方法干净地返回404?您的所有操作都应该具有ActionResult返回值。这允许您返回任何有效的结
JsonResult
的控制器
根据参数,我想返回404,因为这是对请求不存在数据的用户的描述
我可以抛出新的HttpException(404,“message”)
,但考虑到返回HttpNotFound()
语法,这感觉很糟糕。当然,这不起作用,因为HttpNotFoundResult
不会继承JsonResult
我应该如何从
JsonResult
控制器方法干净地返回404?您的所有操作都应该具有ActionResult
返回值。这允许您返回任何有效的结果类型,无论是JsonResult
还是HttpNotFoundResult
public ActionResult Foo()
{
if (!foos.Any())
{
return new HttpNotFoundResult();
}
return Json(foos, JsonRequestBehavior.AllowGet);
}
我会小心地说他们“应该”,因为这确实是一个风格和必要性的问题。争论所有操作都应该返回ActionResult就像争论所有方法都应该返回
对象
。