Как заставить MVC action вернуть 404 - PullRequest
130 голосов
/ 01 июня 2010

У меня есть действие, которое принимает строку, которая используется для получения некоторых данных. Если эта строка не возвращает данных (возможно, потому что они были удалены), я хочу вернуть 404 и отобразить страницу с ошибкой.

В настоящее время я просто использую функцию возврата специального представления, в котором отображается понятное сообщение об ошибке, относящееся к этому действию, в котором говорится, что элемент не найден. Это работает нормально, но в идеале хотелось бы вернуть код состояния 404, чтобы поисковые системы знали, что этот контент больше не существует, и могут удалить его из результатов поиска.

Как лучше всего это сделать?

Это так же просто, как установить Response.StatusCode = 404?

Ответы [ 12 ]

0 голосов
/ 11 августа 2016

Вы также можете сделать:

        if (response.Data.IsPresent == false)
        {
            return StatusCode(HttpStatusCode.NoContent);
        }
0 голосов
/ 05 декабря 2014

Пожалуйста, попробуйте следующий демонстрационный код:

public ActionResult Test()

{
  return new HttpStatusCodeResult (404,"Not found");
}
...