【问题标题】:How to get model after binding but before validation?绑定后验证前如何获取模型?
【发布时间】:2015-01-05 09:20:51
【问题描述】:

是否可以在模型在绑定器中创建之后但在验证之前对其进行全局拦截。我尝试了过滤器,但过滤器在验证后被调用。

【问题讨论】:

  • 你想要达到什么目的?

标签: asp.net-mvc asp.net-mvc-validation asp.net-mvc-filters


【解决方案1】:

这样的事情应该可以工作:

public class CustomModelBinder: DefaultModelBinder
{
    protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        base.OnModelUpdated(controllerContext, bindingContext);
        //You now have access to "bindingContext.Model" which is your model.
    }
}

然后在Application_StartGlobals.asax 中(不要忘记这部分):

ModelBinders.Binders.DefaultBinder = new CustomModelBinder();

【讨论】:

    【解决方案2】:

    尝试自定义模型绑定器。这将在模型验证之前拦截请求管道。实现IModelBinder

    【讨论】:

    • 这仅适用于特定型号,不适用于所有型号。
    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多