Перенаправить на страницу 404 программно, используя asp.net MVC

Я создал приложение Asp.net MVC. Сейчас требуется 404 обработки.

Обновили global.asax и отобразили страницу 404 на основе кода состояния. Также добавлено свойство customErrors в web.config. Работает нормально.

Теперь я хотел бы перенаправить на 404 программно, когда любая вещь не соответствует нашему требованию.

то есть

if(!valid) 
{
    return RedirectToAction("Index", "Page404");
}

Он работает нормально, но есть 2 статуса, один - 301 & amp; затем 404. Так как я могу предотвратить 301? Мне просто нужно 404.

Как мне этого добиться?

Ответы на вопрос(3)

Решение Вопроса

web.config, добавлять:

<customErrors mode="On" >
       <error statusCode="404" redirect="/404.shtml" />
</customErrors>

Это перенаправит на страницу 404.shtml, когда запрошенный ресурс не найден.

Note: Нет необходимости программно перенаправлять пользователей в такой ситуации.

EDIT: Я буквально предлагаю:

if (Context.Response.StatusCode == 404) {
  // handle this
}

Просто вернитесь из своего действия:

return HttpNotFound();
 13 нояб. 2013 г., 02:41
Это правильный ответ. В случае, когда вы запрашиваете базу данных во время обслуживания результата и обнаруживаете, что объект с указанным пользователем идентификатором не существует, вам НЕОБХОДИМО программно перенаправить пользователя на страницу 404 (или аналогичное действие).

Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound

Ваш ответ на вопрос