我在VB中填充了一个字符串列表,并希望在View中显示其结果。我将列表返回到这样的视图:
Dim nameList As List(Of String) = New List(Of String)
Function AddName(theName As String) As ActionResult
nameList.Add(theName)
Return View(nameList)
End Function
但是,我似乎无法找到如何处理此列表作为模型的一部分并使用ASP显示它的示例。我的观点是一个.vbhtml文件,与.cshtml文件相比,语法感觉完全不同。
非常感谢任何帮助!
答案 0 :(得分:2)
在控制器中,您已将模型数据传递给视图。您需要在视图的第一行通知要使用的模型类型的视图。
例如,您可以使用For Each
循环来显示数据:
@ModelType System.Collections.Generic.IEnumerable(Of String)
<div>
<ul>
@For Each s In Model
@<li>
@s
</li>
Next
</ul>
</div>
答案 1 :(得分:1)
ASP.NET MVC不会在回发中保留nameList变量;它永远只是一个变量。如果您将它存储在会话或数据库中,从那里加载它,它将起作用:
Function AddName(theName As String) As ActionResult
Dim nameList As List(Of String) = CType(HttpContext.Session("NAME_LIST"), List(Of String))
If (nameList is Nothing) Then
nameList = new List(Of String)
End If
nameList.Add(theName)
HttpContext.Session("NAME_LIST") = nameList
Return View(nameList)
End Function
请原谅我的VB,因为它有点生疏,希望语法足够接近。每次添加内容时,都会添加到会话中存储的列表中;第一次,列表将为null,因为它尚未在会话中创建,但是空检查会创建一个空列表,并且第一个项目将被添加为OK。当会话终止时,列表会消失,因此您可能需要合并数据库。