【发布时间】:2015-01-05 09:20:51
【问题描述】:
是否可以在模型在绑定器中创建之后但在验证之前对其进行全局拦截。我尝试了过滤器,但过滤器在验证后被调用。
【问题讨论】:
-
你想要达到什么目的?
标签: asp.net-mvc asp.net-mvc-validation asp.net-mvc-filters
是否可以在模型在绑定器中创建之后但在验证之前对其进行全局拦截。我尝试了过滤器,但过滤器在验证后被调用。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-validation asp.net-mvc-filters
这样的事情应该可以工作:
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();
【讨论】:
尝试自定义模型绑定器。这将在模型验证之前拦截请求管道。实现IModelBinder。
【讨论】: