我有一個自定義模型綁定器,它繼承了看起來像這樣的DefaultModelBinder。BindModel在綁定到列表/集合(但不綁定到csla集合時)時返回null
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 GridView的MVC),我綁定控件在網格中的項目清單。
如果我使用派生自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創建並返回常規集合模型?