2009-12-09 69 views
1

我想修改以下自定义模型绑定根据ValueProvider中断MVC 2测试版的变化。Asp.Net MVC 2 Beta ModelBinder变化

protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
     var obj = bindingContext.Model as Core.BusinessBase; 
     if (obj != null) 
     { 
     var errors = from r in obj.BrokenRulesCollection 
        where r.Severity == Validation.RuleSeverity.Error 
        select r; 
     foreach (var item in errors) 
     { 
      bindingContext.ModelState.AddModelError(item.Property, item.Description); 
     //Was -> bindingContext.ModelState.SetModelValue(item.Property, bindingContext.ValueProvider[item.Property]); 
     bindingContext.ModelState.SetModelValue(item.Property, bindingContext.ValueProvider.GetValue(controllerContext, item.Property)); 
     } 
     } 
     else 
     base.OnModelUpdated(controllerContext, bindingContext); 
} 

问题是这样的线总是回来为空

BindingContext.ValueProvider.GetValue(controllerContext, item.Property) 

任何想法?

回答

0
//DefaultModelBinder.GetModelProperties  
var val = GetModelProperties(controllerContext,bindingContext)[item.Property]; 

这个怎么样?