2009-12-09 71 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]; 

這個怎麼樣?