Как вернуть 404 с контроллера JsonResult?
In 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);
}