所以我尝试搜索,但我不确定要搜索什么。我正在尝试创建一个HtmlHelper扩展,它采用MyModel类型的模型。但是,View采用模型类型List(Of MyModel)。在我的扩展中,最初创建的只是MyModel,当View Model是List(MyModel)并且我使用
For Each Item in Model
Html.MyHelper(Item)
Next
我得到一个异常'传递给字典的模型项的类型为'System.Collections.Generic.List
1 [MyModel]',但是这个字典需要一个'MyModel'类型的模型项。'
我原来的助手是
Public Function FormatTable(Of T As Class)(helper As HtmlHelper, model As T) as OutModel(Of T)
我想要像
这样的东西Public Function FormatTable(Of List(of T As Class))(helper As HtmlHelper, model As T,
tableType As RenderType, Optional columns As Integer = 2) As FormatTable(Of T)
或者我应该在视图中创建一个新的帮助器来传递?
答案 0 :(得分:1)
虽然我不确定怎么做Function MyExtension(of List(Of T as Class))(model as T)
或者如果可能的话,我确实解决了我的情况。我需要创建一个不同类类型的HtmlHelper并使用不同的模型并找到MvcUtil就可以了。
我发现了这篇文章:Stronglytyped html helper with different model for get and post
在我看来,我创建了一个新模型类型的新htmlhelper来调用我的htmlextension
For Each Item in Model
@Html.HtmlHelperFor(Of MyType)().MyExtension(Item)
Next
现在有一张支票
If(IsNothing(helper.ViewData.Model)) Then
helper = helper.HtmlHelperFor(Of T)(model)
End If
这在我的视图中循环浏览列表时解决了我的问题。