我正在开发Asp.Net中的自定义模型绑定,我需要在绑定期间修改一个值,然后将模型传递给流畅的验证器。 代码如下所示:
验证:
public MyValidator()
{
Custom(e =>
{
if (e.property != 1)
return new ValidationFailure();
return null;
});
}
模型绑定器:
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var model = base.BindModel(controllerContext, bindingContext) as IMyEntity;
model.property = 1;
return model;
}
问题是验证是在base.BindModel
期间完成的,而不是在整个绑定结束时完成的。因此,验证总是失败。
有没有办法阻止base.BindModel
期间的验证并等待绑定完成?