【发布时间】:2011-06-04 13:53:23
【问题描述】:
我进行了综合搜索,可返回多个对象列表。每个这样的列表都由包含附加列表的对象组成。就处理器负载而言,搜索非常复杂。
获得结果后,我会通过局部视图显示原始对象。
public ActionResult BeginSearch(SearchHomeVM searchParameters)
{
var search = new Search(searchParameters);
linije = search.PretraziLinije();
return PartialView("_searchResult", linije);
}
然后以这种形式,我希望通过 AJAX 调用显示特定项目的详细信息。问题是我需要使用对象数据,而不是在数据库中运行另一个搜索。 在剃须刀中,我有:
@model LinijeSearchResult
@if (Model.BrojDirektnihLinija > 0)
{
<table id="direktneLinije" class="InvisibleTable">
<thead>
<tr>
<th>
Direktne linije
</th>
<th>
</th>
</tr>
</thead>
@for (int index = 0; index < Model.DirektneLinije.Count; index++)
{
LinijaSM item = Model.DirektneLinije[index];
List<LinijaSM> lin = new List<LinijaSM> { item };
<tr>
<td>@item.Naziv
</td>
<td>
@using (Ajax.BeginForm("RenderStanice",
new { psd = 0, index = index, lin = lin },
new AjaxOptions
{
HttpMethod = "POST",
UpdateTargetId = "staniceLinije",
InsertionMode = InsertionMode.Replace
}))
{
<input type="submit" value="Stanice" />
}
</td>
</tr>
}
</table>
}
else
{
<text>Nema direktnih linija za odabrane parametre.</text>
<br />
}
在这里您可以看到我如何尝试将数据传递给控制器操作,如下所示:
public ActionResult RenderStanice(List<LinijaSM> lin)
{
return PartialView("_staniceSR", lin);
}
在该控制器操作中,我得到空列表。 你能告诉我如何做到这一点。
>
到目前为止,我已经发现,任何对象的列表都不能传递回控制器。复杂的对象也是如此。我可以传递一个整数,但不能传递一个整数列表。
有人可以建议我如何实现我的目标吗? 我需要将对象列表传递回控制器。可以通过将其添加到上下文、创建新的 viewData 或类似的方式来完成吗?
如果不可能,是否可以通过 AJAX 呈现部分视图,但无需控制器操作?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-3 viewdata