我有全面的搜索,可以返回多个对象列表。每个这样的列表都由包含附加列表的对象组成。处理器负载方面的搜索非常复杂。如何将视图中的对象列表传递给asp.net中的控制器动作mvc3
一旦我有结果,我通过局部视图显示原始对象。
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呈现局部视图,但是没有控制器操作?
我有我的视图模型中的完整列表,问题是,我不知道如何将它传递回控制器。我可以通过它,没有问题,我的部分观点。但我需要将它传递回控制器,所以我可以使用AJAX渲染局部视图。 – Zaak 2011-06-03 04:07:10
我将它作为JSON传递给任何控制器将为您的AJAX响应生成内容。 – Mobius 2011-06-09 22:06:56