我正在开发一个使用MVC控制器的REST API。我想处理所有模型绑定错误,并以用户友好的方式向客户报告。在我的自定义模型绑定器中,我已经抛出了异常处理程序认为安全的特殊异常,并向客户端显示。可靠地处理ASP.NET MVC模型绑定错误
然而,当默认的模型粘合剂看到一个无效值(比方说,asdf
为int
)似乎要么完全忽略它(如果该参数不是必需的),或者抛出一个普通的ArgumentException
(如果需要的参数)。是否可以可靠地处理这两种情况并获取参数名称和相关错误,而无需手动重写整个联编程序?
我宁愿不按原样显示ArgumentException
,因为它揭示了客户端不应该关心的方法和名称空间名称。如果它是可以避免的,我也不会解析ArgumentException
消息,并且这不会解决非完整忽略的非必需参数的无效值问题。
你有没有找到一个好的解决方案?我正在考虑装饰或继承'IModelBinder',但我想知道是否有更好的方法。 –
@FabianSchmied:可惜没有。 “Web API”模型绑定器可能对这种情况有更好的支持 - 我不了解ASP.NET Core。 –