我有一个自定义模型绑定器,它继承了看起来像这样的 DefaultModelBinder。
Public Class GridFormBinder : Inherits DefaultModelBinder
Public Overrides Function BindModel(controllerContext As System.Web.Mvc.ControllerContext, bindingContext As System.Web.Mvc.ModelBindingContext) As Object
Dim result As Object = MyBase.BindModel(controllerContext, bindingContext)
'Code to handle special case for grid/List binding.
Return result
End Function
End Class
我有这个自定义活页夹的原因是我在网格中呈现各种项目列表(使用 devexpress mvc gridview)并将网格中的控件绑定到项目列表。
如果我使用派生自 BusinessCollectionBase 的类(来自一个非常修改的 CSLA 框架类),那么一切都完全符合我的要求。BusinessCollectionBase 派生自一个看起来像......
<Serializable()> Public MustInherit Class BindableCollectionBase(Of T As IBusinessData)
Inherits CollectionBase
Implements IBindingList
Implements System.Collections.Generic.IEnumerable(Of T)
但是,如果我绑定到一个继承自BindingList<Customer>
的类,MyBase.BindModel(controllerContext, bindingContext)
总是什么都不返回。我尝试了各种通用和非通用 BCL 集合,并且 BindModel 方法总是返回 null。
我需要做些什么来让 DefaultModelBinder 创建并返回常规集合的模型吗?