我正在创建自己的自定义 ModelBinder,它继承自 DefaultModelBinder,并手动绑定 XElement 类型的属性。
现在看来我必须重写“BindProperty”方法,如下所示:
protected override void BindProperty(
ControllerContext controllerContext,
ModelBindingContext bindingContext,
System.ComponentModel.PropertyDescriptor propertyDescriptor)
{
if (propertyDescriptor.PropertyType == typeof(XElement))
{
// code here to take the POST-ed form value and put it in the property as an XElement instance
}
else
base.BindProperty(controllerContext, bindingContext, propertyDescriptor);
}
我应该使用什么代码:
A)从发布的表单值中获取属性值?
B)将此值注入属性?
我尝试在 DefaultModelBinder 类上运行 Reflector 以查看它是如何做到的,但代码非常混乱。
我需要以前做过这件事的人来引导我完成它。