У меня есть следующая проблема: одна из систем, в которой я работаю в большинстве важных функций, - это страница поиска. На этой странице у меня есть некоторые параметры, такие как записи на странице, дата начала, дата окончания и проблемная: type. У вас должна быть возможность выбрать более одного типа (большую часть времени все они будут выбраны). Для выполнения этой работы я создал следующее:
<div>
<label>Eventos:</label>
<div>
@Html.ListBox("events", Model.Events, new { style = "width: 100%" })
</div>
</div>
Он создает список, в котором я могу выбрать более одного параметра, и когда форма будет отправлена, моя строка запроса будет выглядеть так:
?/5 период = 9 & события = 1 & события = 3 & recordsPerPage = 10
Там можно увидеть, что создаются два события (это тип, о котором я говорил раньше). Метод действия на этой странице принимает List<long>
как один из его аргументов, который представляет два значения events
. Проблема начинается, когда я хочу использовать ее с MVC Contrib. Их пейджер работает отлично, но по мере того, как меня просили, я создал еще один пейджер, который отображает ссылки на пять страниц после и до того, на котором находится пользователь. Для этого в части моего кода я должен сделать следующее (что очень похоже на пейджер MVC Contrib, который работает):
public RouteValueDictionary GetRoute(int page)
{
var routeValues = new RouteValueDictionary();
foreach (var key in Context.Request.QueryString.AllKeys.Where(key => key != null))
{
routeValues[key] = Context.Request.QueryString[key];
}
routeValues["page"] = page;
return routeValues;
}
И затем:
@Html.ActionLink(page.ToString(), action, controller, GetRoute(page), null)
Проблема заключается в том, что это словарь, который делает второй раз значение routeValues["events"]
для удаления предыдущего.
Вы, ребята, знаете, как с этим работать?