Связыватель пользовательской модели mvc3 загружает данные из формы, но Base.BinModel очищает поля - PullRequest
0 голосов
/ 09 декабря 2011

Я создал пользовательский переплет, который выглядит следующим образом:

 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 являются нулевыми.

Как мне отследить это и почему это произошло.

Спасибо за помощь

1 Ответ

0 голосов
/ 14 декабря 2011

Поскольку я наследовал от DefaultBinder, base.bindmodel переопределял то, что я делал. Я следовал приведенному ниже примеру, и все правильно.

http://mgolchin.net/posts/20/dive-deep-into-mvc-imodelbinder-part-1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...