【问题标题】:Where to catch exceptions from customized ModelBinder从自定义 ModelBinder 中捕获异常的位置
【发布时间】:2009-12-15 08:15:24
【问题描述】:

我有一个自定义的 ModelBinder,它使用类似这样的代码将 Web 与对象绑定在一起“

    [ModelBinder(typeof(CustomizedModelBinder))]
    public class Widget{ ... }

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

【问题讨论】:

    标签: c# asp.net-mvc modelbinders


    【解决方案1】:

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

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

    这样,您可以在稍后的操作中检查模型是否有效:

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

    【讨论】:

    • 谢谢!但我仍然想继续查看页面,该页面将在捕获异常后重定向。
    • 怎么做,不在控制器里?在每个命令操作中的每个控制器中都有 Model.IsValid 是个坏主意。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 1970-01-01
    • 2016-04-29
    • 2015-06-07
    • 1970-01-01
    相关资源
    最近更新 更多