Как заставить действие MVC возвращаться 404

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

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

Что лучший способ состоит в том, чтобы пойти об этом?

Действительно ли это столь же просто как установка Response. StatusCode = 404?

135
задан Paul Hiles 1 June 2010 в 09:14
поделиться

3 ответа

Есть несколько способов сделать это,

  1. Вы правы в общем коде aspx, который может быть назначен указанным вами способом
  2. throw new HttpException (404, «Некоторое описание»);
105
ответ дан 23 November 2019 в 23:43
поделиться

Я использую:

Response.Status = "404 NotFound";

Это работает для меня: -)

2
ответ дан 23 November 2019 в 23:43
поделиться

Например, в NerdDinner. Попробуйте it

public ActionResult Details(int? id) {
    if (id == null) {
        return new FileNotFoundResult { Message = "No Dinner found due to invalid dinner id" };
    }
    ...
}
5
ответ дан 23 November 2019 в 23:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: