asp.net-mvc – 使用部分视图进行MVC分页

我是一个相对较新的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" />
}

并且部分视图因此呈现:

@foreach (var item in @Model)

{

<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(">>",new {  searchString = ViewBag.query,page = ViewBag.CurrentPage+1 })
    }
}

我的问题是>>或<<链接只是创建一个空白页面,其中包含结果列表,并且不会保留“顶部”索引页面标记. 有没有人对此有任何想法. NB我是这个网站的新手,我会提出任何答案.

解决方法

Html.ActionLink生成一个普通的锚点.当您单击此锚点时,它只是将浏览器重定向到此链接指向的地址.这就是为什么你在新窗口中看到部分内容的原因.

如果您只想刷新页面的一部分而不重定向,则可以使用AJAX链接(Ajax.ActionLink):

@Ajax.ActionLink(
    "<<",new { 
        searchString = ViewBag.query,page = ViewBag.CurrentPage - 1 
    },new AjaxOptions
    {
        HttpMethod = "GET",UpdateTargetId = "searchResults"
    }
)

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....