ASP.NET MVC Перенаправление на страницу / маршрут по умолчанию, когда содержимое не найдено - PullRequest
1 голос
/ 10 февраля 2010

Позвольте мне сказать, что у меня есть маршрут / действие для отображения страниц с контентом, например:

/Page/{slug}

где {slug} может быть любым, что набирает посетитель, но если оставить его пустым, по умолчанию используется значение "По умолчанию".

У меня есть определение маршрута для случая, когда {slug} пуст или по умолчанию или что-то еще, так что все в порядке.

Теперь, что вы делаете в тех случаях, когда запрошенный слаг (например, страница) не существует?

Кто-то запросил / Page / xyz, например, и XYZ не существует в моем хранилище данных.

1) Должен ли я выдать 404 (если да, то как? Мои варианты: а) перенаправить на страницу 404 по умолчанию; б) нет ответа 404, просто дружеское сообщение об ошибке?)

2) Должен ли я автоматически перенаправлять по умолчанию? Если да, нужно ли мне выдавать 302, 301 или что?

Я понимаю, что это спорно, но все же хотело бы некоторые мнения по этому поводу на то, что является лучшим prectices. Также предоставьте несколько строк кода о том, как бы вы реализовали его в действиях контроллера ASP.NET MVC.

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

@ zihotki связал хорошую страницу для понимания, какие коды ответов отправлять. Чтобы отправить их в ASP.NET MVC, вам нужно создать экземпляр контроллера ошибок в своем коде обработки ошибок, и в вашем ответе оттуда следует установить HttpResponse.StatusCode соответствующим образом.

1 голос
/ 10 февраля 2010

см. эту тему, она содержит всю необходимую информацию для вашего дела

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...