Надежная обработка ошибок привязки модели ASP.NET MVC

Я разрабатываю REST API с использованием контроллеров MVC. Я хотел бы обрабатывать все ошибки привязки модели и сообщать о них клиенту в удобной для пользователя форме. В своих привязках пользовательских моделей я уже генерирую специальное исключение, которое обработчик исключений считает безопасным и показывается клиенту.

Однако, когда связыватель модели по умолчанию видит недопустимое значение (скажем, asdf для int ), он, кажется, либо полностью игнорирует его (если параметр не требуется), либо бросает простой ArgumentException (если параметр является обязательным). Можно ли надежно обработать оба случая и получить имя параметра и связанную с ним ошибку, не переписывая всю связку вручную?

Я бы предпочел не показывать ArgumentException как есть, потому что оно обнаруживает имена методов и пространств имен, о которых клиенту не нужно заботиться. Я бы также предпочел не анализировать сообщение ArgumentException , если его можно избежать, и это не решит проблему с полным игнорированием недопустимых значений для необязательных параметров.

7
задан Matti Virkkunen 17 November 2011 в 07:02
поделиться