在视图中,我有一个加载到表(网格类型)中的数据列表,在其中我需要调用控制器方法以通过url.action
. 这就是我在视图中拥有数据的方式:
<% For Each item In Model.listadoNoticias%>
<tr>
<td>
<%: Html.DisplayFor(Function(modelItem) item.TituloNoticia)%>
</td>
<td>
<%: Html.DisplayFor(Function(modelItem) item.DescripcionNoticia)%>
</td>
<td>
<%: Url.Action("Datos", "Noticias", New With {.id = item.IdNoticia})%>'
</td>
</tr><% Next%>
在控制器的 url 操作中,以便显示来自查询的数据。在控制器中:
Function Datos (ByVal id As Integer) As ActionResult
Using db As New BD_Prueba
Dim datos = (From t3 In db.FOTO From intermedia In t3.NOTICIA.Where(Function(x) x.IdNoticia = id) Select New With {t3.NombreFoto}).ToList()
End Using
Return View(datos)
End Function
我想应该不是 go 它ActionResult
应该是类似List(Of String)
的东西,而不是Return View(datos)
应该是类似的东西Return list(fotos)
。我想知道这个修复在控制器中会是什么样子,因为我需要将数据列表返回到视图的操作 url。
我想补充另一个问题,如果我必须返回二进制文件列表而不是返回字符串列表,那么在这种情况下又会如何呢?
如果您想要将字符串或 html 注入表中,则不应使用
Url.Action()
,但应该是Html.Action()
:这样,action返回的内容就会在那个地方渲染出来。
如果需要,您可以使操作返回一个简单的字符串,虽然我注意到您从 linq 创建了一个生成的列表,但您可能需要转换它,如果您有一个字符串列表,您可以使用
String.Join()
连接分隔的值通过一个字符澄清一下,记住有
Html.Action()
和Html.RenderAction()
Html.RenderAction 和 Html.Action
string.join 的使用可能像