从定制的ModelBinder中捕获异常的位置

时间:2009-12-15 08:15:24

标签: c# asp.net-mvc modelbinders

我有一个自定义的ModelBinder,它使用像这样的代码“

将web与对象绑定在一起
    [ModelBinder(typeof(CustomizedModelBinder))]
    public class Widget{ ... }

这个模型绑定器可能抛出异常,我应该在哪里添加代码来捕获这些异常?提前谢谢!

1 个答案:

答案 0 :(得分:7)

从设计角度来看,模型绑定器最好添加模型错误而不是抛出异常:

ModelState.AddModelError("Phone", "Phone number is invalid.");

这样,您可以在行动的后期检查模型是否有效:

if (!ModelState.IsValid)
{
    ...
}