ASP.NET MVC & C #: HttpStatusCodeResult () против HttpNotFound () - PullRequest
0 голосов
/ 20 января 2019

В ASP.NET MVC, какая разница между возвращением этого:

 return new HttpStatusCodeResult(HttpStatusCode.NotFound);

и этого:

 return HttpNotFound();

Ответы [ 3 ]

0 голосов
/ 20 января 2019

Разница в том, что HttpStatusCodeResult дает вам больше контроля над тем, какой код состояния HTTP вы можете вернуть, поскольку он позволяет вам указать любой из предопределенных кодов состояния в перечислении HttpStatusCode.HttpNotFound всегда возвращает код состояния HTTP 404.

0 голосов
/ 20 января 2019

Метод HttpNotFound() возвращает new HttpNotFoundResult(null).

Таким образом, вопрос в том, в чем разница между new HttpNotFoundResult(null) и new HttpStatusCodeResult(HttpStatusCode.NotFound)?

  • HttpNotFoundResult позволяет проверить код возврата, проверив тип (if (result is HttpNotFoundResult)) в дополнение к проверке кода состояния (if (StatusCode == 404)).
  • return HttpNotFound(); проще набирать.

В противном случае нет никакой разницы.
HttpNotFoundResult class просто устанавливает код состояния HttpStatusCodeResult на HttpStatusCode.NotFound.

0 голосов
/ 20 января 2019

enter image description here

Посмотрите на эту страницу, HttpNotFound генерируется страницей HttpStatusCodeResult. В HttpNotFound вы можете только этот тип сообщения.Но HttpStatusCodeResult допускает другой тип HttpStatuts, такой как succes, внутренняя ошибка и т. Д.

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.httpnotfoundresult?view=aspnet-mvc-5.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...