Перенаправить на страницу 404 программно, используя asp.net MVC
Я создал приложение Asp.net MVC. Сейчас требуется 404 обработки.
Обновили global.asax и отобразили страницу 404 на основе кода состояния. Также добавлено свойство customErrors в web.config. Работает нормально.
Теперь я хотел бы перенаправить на 404 программно, когда любая вещь не соответствует нашему требованию.
т.е.
if(!valid)
{
return RedirectToAction("Index", "Page404");
}
Он работает нормально, но есть 2 статуса, один 301, а затем 404. Так как я могу предотвратить 301? Мне просто нужно 404.
Как мне этого добиться?
Ответы
Ответ 1
В web.config
добавить:
<customErrors mode="On" >
<error statusCode="404" redirect="/404.shtml" />
</customErrors>
Это будет перенаправлено на страницу 404.shtml, если запрашиваемый ресурс не найден.
Примечание. Нет необходимости программно перенаправлять пользователей для такой ситуации.
EDIT:
Я буквально предлагаю:
if (Context.Response.StatusCode == 404) {
// handle this
}
Ответ 2
Просто вернитесь из своего действия:
return HttpNotFound();
Ответ 3
Просто выбросьте 404 в код состояния:
Response.StatusCode = (int)System.Net.HttpStatusCode.NotFound