В настоящее время я пишу простое приложение MVC 3, которое отображает список элементов и позволяет пользователю фильтровать элементы (на той же странице).Затем пользователь может щелкнуть элемент и будет перенаправлен на страницу сведений.
Проблема, с которой я столкнулся, заключается в том, что когда пользователь нажимает кнопку «вернуться к списку», критерии поиска теряются, и текущая страница (результаты поиска разбиты на страницы).
Я новичок в MVC и не могу понять, как это сделать.
Контроллер
....
public ActionResult Index(PacketSearch search)
{
const int pageSize = 20;
var allPackets = this.repository.GetAllPackets().Where(p => (string.IsNullOrEmpty(search.FromIp)) || p.FromIp == search.FromIp);
var pagedPackets = new PaginatedList<RawPacket>(allPackets, search.Page ?? 0, pageSize);
search.SearchResults = pagedPackets;
return View(search);
}
public ActionResult Details(int id)
{
var packet = this.repository.GetPacket(id);
return View(packet);
}
Главная страница
....
@if (Model.SearchResults != null && Model.SearchResults.Count > 0)
{
<table>
<tr>
<th>
Timestamp
</th>
<th>
From IP
</th>
</tr>
@foreach (var item in Model.SearchResults) {
<tr>
<td>
@Html.ActionLink(item.TimestampString, "Details", "Packets", new { id = item.Id }, null)
</td>
<td>
@Html.DisplayFor(modelItem => item.FromIp)
</td>
</tr>
}
</table>
}
<br />
@if (Model.SearchResults.HasPreviousPage)
{
@Html.RouteLink("<<<", "Packets", new { page = (Model.SearchResults.PageIndex - 1) })
}
Page @(Model.SearchResults.PageIndex + 1) of @Model.SearchResults.TotalPages
@if (Model.SearchResults.HasNextPage)
{
@Html.RouteLink(">>>", "Packets", new { page = (Model.SearchResults.PageIndex + 1) })
}
Подробности Страница
<h2>Packet Details</h2>
<fieldset>
<legend>RawPacket</legend>
<div class="display-label">Timestamp</div>
<div class="display-field">
@Html.DisplayFor(model => model.TimestampString)
</div>
<div class="display-label">FromIp</div>
<div class="display-field">
@Html.DisplayFor(model => model.FromIp)
</div>
</fieldset>
<p>
@Html.ActionLink("Back to List", "Index")
</p>
Любая помощь будет высоко ценится, спасибо.