我遇到了一个问题,将类型为T的List从视图传递回控制器,该控制器在局部视图中加载列表以在模态对话框中显示它们。
这就是我所拥有的:
查看传递给Controller:
@foreach(var queue in itemQueues)
{
<td>@Html.ActionLink(queues.OpenItems.Count.ToString(), "ItemQueueDetails", "Pod", new { collection = queue.OpenItems }, null)</td>
}
控制器传递到局部视图:
public ActionResult ItemQueueDetails(List<Item> collection)
{
var cols = typeof(Incident).GetProperties();
ViewData["DataHeaders"] = cols;
ViewData["DataRows"] = collection;
return PartialView("QueueDetails");
}
部分视图可以满足你的期望,所以我现在并不认为它是恰当的。
唯一的问题是,无论在队列列表中存储了多少元素作为参数传递给ItemQueueDetails ActionResult,collection参数总是以一个包含零元素的List结束。
我的应用程序仅显示数据。初始视图只显示队列的计数(虽然它传递整个列表并只显示计数),而点击#项目应该显示显示实际细节的模态。
答案 0 :(得分:1)
尝试使用Viewbag
或ViewData
或TempData
并在其中放置列表,然后再将其放入控制器操作中的ViewData["DataRows"]
内或尝试以下内容: -
@foreach(var queue in itemQueues)
{
<td>
@Html.ActionLink(queues.OpenItems.Count.ToString(), "ItemQueueDetails",
"Pod", new RouteValueDictionary{
{ "collection[0]", queue.OpenItems[0] },
{ "collection[1]", queue.OpenItems[1] }
})
</td>
}