2014-01-31 4 views
1

Мне было бы интересно узнать, существует ли какой-либо общий способ решения моей проблемы. Предположим, что некоторые из моих действий ожидают, что параметр Id будет передан, но в какой-то момент пользователь может попытаться присвоить строку параметру Id в URL. В результате наше действие не запускается, и в базовый класс выбрано 500 исключений. Есть ли способ разрешить это и исключить исключение 404?Возврат 404, если тип параметра неверен

+0

Как вы хотите обрабатывать информацию о маршруте? Настроить маршрут –

+0

Маршрут настроен по умолчанию Controller/Action, действие должно быть индексом (int Id). В случае, если я ввел URL-адрес/контроллер/действие? Id = abc, я получаю исключение 500 – ArkadyB

+0

Я еще не пробовал это раньше, но вы можете настроить отдельное правило маршрута, которое берет строку, и просто возвращает 404 из действие, к которому направляется правило? – SethMW

ответ

0

Вы можете помещать противопоказания по маршруту. Вы можете найти хороший учебник здесь

http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-a-route-constraint-cs

затем положить строку вместо идентификатора не будет соответствовать маршруту.

Альтернативами является создание фильтра исключений в MVC/webapi для обработки всех исключений и поиска условия или для создания настраиваемого обработчика маршрута.

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