MVC4在Controller中反序列化JSON对象

时间:2014-01-29 03:31:32

标签: ajax json asp.net-mvc-4

我刚刚解决了上述问题。我正在向控制器发送一个JSON对象,但是一旦在控制器方法中,对象的属性都是空的。

修复是添加{get;组; }到其类中对象的所有属性。这些房产已经公开但这还不够。

有谁能告诉我为什么会这样?

1 个答案:

答案 0 :(得分:0)

为了得到答案,如果你看一下MVC DefaultModelBinder.cs代码,关于绑定复杂元素,你可以看到modelbinder只绑定了模型的属性。

internal void BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, object model)
  {
            // need to replace the property filter + model object and create an inner binding context
            ModelBindingContext newBindingContext = CreateComplexElementalModelBindingContext(controllerContext, bindingContext, model);  
            // validation
            if (OnModelUpdating(controllerContext, newBindingContext))
            {
                BindProperties(controllerContext, newBindingContext);
                OnModelUpdated(controllerContext, newBindingContext);
            }
   }