다음과 같이 DefaultModelBinder를 상속하는 사용자 정의 모델 바인더가 있습니다. BindModel은 목록/컬렉션에 바인딩 할 때 null을 반환합니다 (그러나 csla 컬렉션에 바인딩 할 때는 아님)
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를 사용하여) 그리드에서 항목의 다양한 목록을 제시하고 있는데이 항목의 목록에 그리드 컨트롤을 결합한다는 것입니다.매우 수정 된 CSLA 프레임 워크 클래스의 BusinessCollectionBase에서 파생 된 클래스를 사용하는 경우 모든 것이 정확히 원하는대로 작동합니다. 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에서 일반 컬렉션의 모델을 만들고 반환하려면 어떻게해야합니까?