2012-05-22 3 views
11

Я создал приложение ASP.NET MVC. Теперь требуется 404 обработки.Перенаправление на страницу 404 с программным использованием asp.net MVC

Обновлен файл global.asax и дисплей 404 на основе кода состояния. Также добавлено свойство customErrors в web.config. Его работа прекрасна.

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

т.е. если { возвращение RedirectToAction ("Index", "Page404") (действительно!); }

Сво работает нормально, но есть два состояния один 301 & то 404. Так что, пожалуйста, дайте мне знать, как я могу предотвратить 301. Мне просто нужно 404.

Пожалуйста, дайте мне знать, как я могу добиться этого ?

Спасибо, Laxmilal Menaria

ответ

3

В вашем web.config добавить:

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

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

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


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

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

Просто выбросить 404 в код состояния:

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

Просто вернуться из ваших действий:

return HttpNotFound(); 
+2

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

Смежные вопросы