【发布时间】:2011-12-31 02:05:15
【问题描述】:
我正在使用 MVC 控制器开发一个 REST API。我想处理所有模型绑定错误并以用户友好的方式将它们报告给客户端。在我的自定义模型绑定器中,我已经抛出了异常处理程序认为安全的特殊异常并显示给客户端。
但是,当默认模型绑定器看到无效值(例如,asdf 用于 int)时,它似乎要么完全忽略它(如果不需要该参数)或抛出一个普通的 ArgumentException(如果参数是必需的)。是否可以可靠地处理这两种情况并获取参数名称和相关错误,而无需手动重写整个活页夹?
我宁愿不按原样显示ArgumentException,因为它显示了客户端不必关心的方法和命名空间名称。如果可以避免,我也宁愿不解析 ArgumentException 消息,这不会解决完全忽略非必需参数的无效值的问题。
【问题讨论】:
-
您有没有找到好的解决方案?我正在考虑装饰或继承
IModelBinder,但我想知道是否有更好的方法。 -
@FabianSchmied:不幸的是没有。 “Web API”模型绑定器可能对这种情况有更好的支持——我不知道 ASP.NET Core。
标签: asp.net-mvc error-handling model-binding