Tom*_*aly 4 asp.net-mvc paging
我是一个相对较新的MVC用户,并且很难让分页在MVC中正常工作.
基本上我有一堆搜索结果在局部视图中呈现(使用像这样的开始表单方法):
using (Ajax.BeginForm("Search", "Home", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "searchResults",
}))
{
<input type="text" name="searchString" />
<input type="submit" value="Search" />
}
Run Code Online (Sandbox Code Playgroud)
并且部分视图因此呈现:
@foreach (var item in @Model)
Run Code Online (Sandbox Code Playgroud)
{
<li>@Html.ActionLink(item.Name, "Result/" + item.Id, "Result")</li>
}
@{if(ViewBag.HasPrevious)
{
@Html.ActionLink("<<", "Search", new { searchString = ViewBag.query, page = ViewBag.CurrentPage-1 })
}
}
@{if(ViewBag.HasNext)
{
@Html.ActionLink(">>", "Search", new { searchString = ViewBag.query, page = ViewBag.CurrentPage+1 })
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是>>或<<链接只是创建一个空白页面,其中包含结果列表,并且不会保留"顶部"索引页面的标记.
有没有人对此有任何想法.
NB我是这个网站的新手,我会提出任何答案.
Html.ActionLink生成一个普通的锚.当您单击此锚点时,它只是将浏览器重定向到此链接指向的地址.这就是为什么你在新窗口中看到部分内容的原因.
如果您只想刷新页面的一部分而不重定向,则可以使用AJAX链接(Ajax.ActionLink)代替:
@Ajax.ActionLink(
"<<",
"Search",
new {
searchString = ViewBag.query,
page = ViewBag.CurrentPage - 1
},
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "searchResults"
}
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4848 次 |
| 最近记录: |