Как получить данные на страницах с кодом пагинации @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" })
}