chaturvedi_anshumaan_20191 Ответов: 0

Как получить данные на страницах с кодом пагинации @html.pagedlist, передав formcollection в качестве параметра?


Я написал код разбиения на страницы для отображения записей в пользовательском интерфейсе.

метод действия:

public ActionResult Questionnaire(int? page,FormCollection formcollection = null)
        {
            //Get the List of Questionnaires
            //problem, formCollection coming as null and the view is not returned 
            var temp = formcollection;
            questionnaires = new List<Questionnaire>();
            questionnaires = GetQuestionnaire();

            int pageIndex = 1;
            int pageSize = 3;
            pageIndex = page.HasValue ? Convert.ToInt32(page) : 1; 

            ViewBag.CLCodeList = questionnaires.Select(x => x.CLCode);

            ViewBag.AnswerTypes = new List<string>() { "Number", "Text", "CheckBox" };

            if (formcollection != null && formcollection["CLCode"]?.Length > 0)
            {
                ViewBag.SelectedValue = formcollection["CLCode"];

                return View(GetQuestionnaire(formcollection["CLCode"].ToString()).ToPagedList(pageIndex, pageSize));
            }

            return View();
        }

и соответствующий файл View.cshtml

<div style="float:right;">
                        <br />
                        <label style="margin-top: -33px; margin-bottom: -16px;">Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount</label>

  @Html.PagedListPager(Model, page => Url.Action("Questionnaire", new {page}))
                    </div>


При нажатии на страницу 2 или любой номер страницы в моем пользовательском интерфейсе Formcollection приходит как null, а затем возвращается в пустое представление. Я точно знаю, что Formcollection не должен быть нулевым, и если есть какие-либо записи, то они должны отображаться в моем пользовательском интерфейсе. Я понятия не имею, почему он возвращает null и как я могу отобразить свой следующий набор записей на следующей странице.

Что я уже пробовал:

Я попытался использовать ViewBag, но он говорит, что метод не существует в этом контексте .

F-ES Sitecore

Что вы ожидаете от formcollection? Я бы начал с ознакомления с документацией, чтобы увидеть, как предполагается использовать пейджинг.

chaturvedi_anshumaan_20191

Предполагается, что FormCollection захватывает и имеет значение, выбранное в раскрывающемся списке. Для первой страницы это захват. На второй странице Я делаю нулевую проверку, и она проходит.

@using (Html.BeginForm("анкета", "ChurnFB", FormMethod.Post, new { @name = "ddlForm" }))
{
@Html.DropDownList("CLCode", new SelectList(ViewBag.CLCodeList, ViewBag.SelectedValue), "Select CLCode", new { id = "ddlCLCode" })
}

0 Ответов