MVCコントローラを使用してREST APIを開発しています。すべてのモデルバインディングエラーを処理して、ユーザーフレンドリーな方法でクライアントに報告したいと思います。私のカスタムモデルのバインダーでは、私はすでに例外ハンドラーによって安全と考えられ、クライアントに示されている特別な例外を投げています。ASP.NET MVCモデルのバインディングエラーを確実に処理します
デフォルトのモデルバインダーは、無効な値(int
のためと言う、asdf
)を見たときしかし、完全に(パラメータが不要の場合)、それを無視するか(パラメータが必要な場合)、プレーンArgumentException
をスローするかと思われます。手作業でバインダー全体を書き直すことなく、両方のケースを確実に処理してパラメーターの名前と関連するエラーを取得することは可能ですか?
クライアントが気にするべきでないメソッドと名前空間の名前を明らかにするため、私はむしろArgumentException
をそのまま表示したいと思います。私はむしろ、それが回避可能な場合はArgumentException
メッセージを解析しないで、不要なパラメータが完全に無視される無効な値では問題を解決できません。
あなたは良い解決策を見つけたことがありますか?私は 'IModelBinder'を装飾またはサブクラス化することを考えていますが、もっと良い方法があるかどうかを知りたいと思います。 –
@FabianSchmied:残念ながら、 "Web API"モデルのバインダーはおそらくこのケースをサポートしています。ASP.NET Coreについてはわかりません。 –