Как мне вернуть 404 с контроллера JsonResult?
В ASP.NET MVC5 у меня есть контроллер с JsonResult
тип возврата.
В зависимости от параметров я хочу вернуть 404, так как это описывает пользователя, запрашивающего несуществующие данные.
Я мог бы throw new HttpException(404, "message")
но это грязно, учитывая return HttpNotFound()
синтаксис. Это не работает, конечно, потому что HttpNotFoundResult
не наследует JsonResult
Как я должен чисто вернуть 404 из JsonResult
методы контроллера?
1 ответ
Решение
Все ваши действия должны просто иметь ActionResult
возвращаемые значения Это позволяет вам возвращать любой допустимый тип результата, будь то JsonResult
или же HttpNotFoundResult
,
public ActionResult Foo()
{
if (!foos.Any())
{
return new HttpNotFoundResult();
}
return Json(foos, JsonRequestBehavior.AllowGet);
}