Как выполнять разбиение на страницы и фильтрацию в приложениях MVC

У меня та же проблема, что и в этом сообщении, но ответ не работает. ... Нет перегрузки для метода "Пейджер" принимает 4 аргумента. Я использую старую версию MVCContrib или ответ устарел?

мой код выглядит так: в контроллере

 public ActionResult Index(int? clubid,int? page)
        {
            List<aspnet_Users> memberList = new List<aspnet_Users>();
            IEnumerable enumerable;
            if (!clubid.HasValue)
            {
                enumerable = aspnet_Users.Find(User.Identity.Name).Club != null ? aspnet_Users.FindAllByClubId(aspnet_Users.Find(User.Identity.Name).Club.Id) : aspnet_Users.FindAll();
            }
            else
            {
                if (clubid == 0)
                {
                    enumerable = aspnet_Users.FindAll();
                }
                else
                {
                    enumerable = aspnet_Users.FindAllByClubId(clubid.Value);
                }
            }
            ViewData["clubid"] = clubid;
            foreach (aspnet_Users member in enumerable)
            {
                memberList.Add(member);
            }
            return View(memberList.AsPagination(page ?? 1, 10));

        }

с учетом

 <h2>Index</h2>

 <% using (Html.BeginForm()) {
        ArrayList clubs=new ArrayList();
        clubs.Add(new Club(0, "Toate"));
        clubs.AddRange(Club.FindAll());

        %>

                 <%= Html.DropDownList("ClubId", new SelectList(clubs, "Id", "Name", (Model == null ? 0 : aspnet_Users.Find(Page.User.Identity.Name).Club != null ? aspnet_Users.Find(Page.User.Identity.Name).Club.Id : 0)))%>
                 <input type="submit" value="Filtreaza" />
  <% } %>

    <table>
        <tr>
            <th>Action</th>
            <th>
                UserName
            </th>
            <th>
                Club
            </th>

.....


         <%=Html.Encode(item.Male?"Male":"Female")%>
            </td>
             <td>
                <%=Html.Encode(item.BirthDay.HasValue?item.BirthDay.Value.ToString(ConfigurationManager.AppSettings["DateFormat"], CultureInfo.InvariantCulture):"")%>
            </td>

        </tr>

    <% }%>

    </table> <%= Html.Pager(Model)%>

если я фильтрую результат, изменяя clubid с раскрывающимся списком, выбранное значение не передается на следующие страницы ...

следующая ссылка на страницу - Members / Index? page = 2, а я хочу Members / Index? clubid = 1 & page = 2

Я пробовал с ‹% = Html.Pager (ViewData.Model.PageSize, ViewData.Model.PageNumber, ViewData.Model.TotalItemCount, new {categoryname = ViewData [" clubid "]})%>, но я получаю ошибки компиляции

Никакая перегрузка для метода "Пейджер" не принимает 4 аргумента.

Я проверил, и у меня есть последняя версия mvccontrib (1.0.0.916)


person bogdanbrudiu    schedule 09.09.2009    source источник


Ответы (1)


Не уверен, что именно вы пытаетесь сделать - возможно, вы могли бы опубликовать какой-нибудь код.

Тем не менее, двоичные файлы MvcContrib, доступные на CodePlex, довольно устарели. В частности, значительно улучшена модель сетки и разбиения по страницам. Вам следует скачать последнюю версию с GitHub и создать свою собственную копию.

person Wyatt Barnett    schedule 09.09.2009
comment
10X сначала я не понял вашего ответа (я тупой ....) codeplex & 1.0.0.916 устарел .... вот последний github.com/mvccontrib/MvcContrib/tree/master - person bogdanbrudiu; 10.09.2009