【发布时间】:2015-11-07 08:43:38
【问题描述】:
我有两个用于搜索结果的部分视图,它们使用引导程序的选项卡窗格显示在父视图中。
这是我的父视图:(仅限Index.cshtml 相关代码)
<form class="form">
@using (Html.BeginForm("Index", "Home", FormMethod.Get))
{
<div class=" form-group">
@Html.TextBox("search", ViewBag.CurrentFilter as string,
new { @placeholder = "Enter class number", @class = "form-control" })
</div>
<div class="form-group">
<input class="btn btn-success" type="submit" value="Search" id="btnclick" />
</div>
}
</form>
<div class="tab-content col-xs-12">
<div class="tab-pane fade in active" id="info">
@if (Model.student_info.Count() != 0)
{
@Html.Partial("_studentinfo")
}
else
{
<h4 style="padding:5px;">No records found.</h4>
}
</div>
<div class="tab-pane fade" id="grades">
@if (Model.gradeperterm.Count() != 0)
{
@Html.Partial("_gradeterm")
}
else
{
<h4 style="padding:5px;">No records found.</h4>
}
</div>
</div>
然后对于我的每一个局部视图,我都放置了 pagedlistpager
@if (Model.student_info.Count > 1)
{
@Html.PagedListPager(Model.student_info,
page =>Url.Action("Index",
new { page = Page, currentFilter = ViewBag.CurrentFilter}))
}
那么我的控制器是这样的:
Guid query = new Guid();
query = (from b in db.school
where b.class_nr == search
select b.class_id).FirstOrDefault();
if (search != null)
{
page = 1;
}
else
{
search = currentfilter;
}
ViewBag.CurrentFilter = search;
int pageSize = 5;
int pageNumber = (page ?? 1);
var smodel = new schoolmodel
{
student_info = db.student_info.Where(x => x.class_id == query)
.OrderBy(x => x.recorded_at_date_time)
.ToPagedList(pageNumber, pageSize),
gradeperterm = db.gradeperterm.Where(x => x.class_id == query)
.OrderBy(x => x.term)
.ToPagedList(pageNumber, pageSize)
};
return View(patmodel);
当我搜索时,它会成功显示每个选项卡窗格的前五页,但是,当我单击下一页时,它会显示“未找到结果”,但我的搜索字符串和当前过滤器不为空,如我的网址。我怎样才能使它工作?我对 mvc 完全陌生。答案将不胜感激。谢谢。
【问题讨论】:
标签: asp.net-mvc partial-views pagedlist