【发布时间】:2018-10-30 23:30:28
【问题描述】:
我正在开发一个 Asp.net core 2 项目。作为我项目的一部分,我需要通过分页查看结果。请看图
在提交搜索表单后,input 的值被删除。
当我点击第 2 页时,我看不到其余的结果 提交表单后如何保存输入值?
控制器
public IActionResult SearchResult(string txtsearch, int page = 1)
{
var model = new IndexModel();
if (txtsearch != null)
{
//Paging/////////////////////////////////////////////////////////////////////////
int paresh = (page - 1) * 3;
int count = _iuw.NewsRepositoryUW.Get(n => n.Title.Contains(txtsearch)).Count();
ViewBag.PageID = page;
double counter = count % 3;
if (counter != 0)
{
ViewBag.PageCount = (count / 3) + 1;
}
else
{
ViewBag.PageCount = count / 3;
}
model.searchModel = _iuw.NewsRepositoryUW.Get(n => n.Title.Contains(txtsearch)).Skip(paresh).Take(3).ToList();
if (model.searchModel.Count() > 0)
{
ViewBag.searchVal = txtsearch;
return View("Searchresult", model);
}
else
{
model.searchModel = null;
}
}
return View("Searchresult", model);
}
搜索表单
<form class="navbar-form navbar-left" asp-action="SearchResult" asp-controller="Home" method="get">
<div class="form-group">
<input type="text" id="txtsearch" name="txtsearch" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Search</button>
</form>
【问题讨论】:
-
您需要将模型传递给您的视图,其中包含搜索值的属性和
IEnumerable<T>属性,并绑定到搜索属性(使用HtmlHelper或 TagHelper -
请参阅How to I apply filter while paginating in Asp.net MVC and entity Framework? 以获取使用过滤器下拉列表的示例
标签: asp.net-mvc asp.net-core pagination