Я создал пользовательский переплет, который выглядит следующим образом:
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var o = new MetaObject();
o.OnBinderLoad();
o.StatusTypeId = Convert.ToInt32(bindingContext.ValueProvider.GetValue("StatusTypeId").AttemptedValue);
o.Comments.setValue(bindingContext.ValueProvider.GetValue("Comments").AttemptedValue);
o.EffectiveDate.setValue(bindingContext.ValueProvider.GetValue("EffectiveDate").AttemptedValue);
// bindingContext.ModelMetadata =
ModelBindingContext newBindingContext = new ModelBindingContext()
{
ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(() => o, typeof(MetaObject)),
ModelState = bindingContext.ModelState,
ValueProvider = bindingContext.ValueProvider
};
var returnValue = base.BindModel(controllerContext, newBindingContext);
return returnValue;
}
Я запускаю отладчик, а значение o и newBindingContext.ModelMetadata содержат правильные данные перед вызовом base.BindModel. После этой точки Комментарии и EffectivDate являются нулевыми.
Как мне отследить это и почему это произошло.
Спасибо за помощь