In ASP.NET MVC5 I have a controller with a JsonResult
return type.
Depending on parameters I want to return a 404, as this is descriptive of the user requesting non-existent data.
I could throw new HttpException(404, "message")
but this feels dirty given the return HttpNotFound()
syntax. This doesn't work, of course, because HttpNotFoundResult
does not inherit JsonResult
How should I cleanly return 404's from JsonResult
controller methods?
All your actions should simply have ActionResult
return values. This allows you to return any valid result type, whether that's a JsonResult
or HttpNotFoundResult
.
public ActionResult Foo()
{
if (!foos.Any())
{
return new HttpNotFoundResult();
}
return Json(foos, JsonRequestBehavior.AllowGet);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With