MVC 4 在部分视图中使用分页列表

2024-04-06

我正在尝试在部分视图中实现 PagedList。

描述视图设置。我有Controller A with ViewA。这是父视图,有自己的模型。然后我有Controller B with PartialViewB并且也有自己的模型。然后我有一个 DivViewA将用于显示PartialViewB。我可以加载PartialViewB点击按钮后,然后再次点击按钮后隐藏视图。内PartialViewB是分页列表。点击下一页按钮加载下一页,但将其加载到其自己的页面中,而不是加载到ViewA和以前一样。

我可以根据需要加载更多代码,但现在这是寻呼机

<br />
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    @Html.PagedListPager(Model, page => Url.Action("ViewComments",
    new { courseID = @ViewBag.courseID, page }), 
    new PagedListRenderOptions { MaximumPageNumbersToDisplay = 5, DisplayLinkToFirstPage = PagedListDisplayMode.IfNeeded, 
        DisplayLinkToLastPage = PagedListDisplayMode.IfNeeded })

::EDIT::

父视图

<div class="Comments">
    <input type="button" id="View" class="CommentsButton" value="View Comments"/>
    <input type="hidden" id="Hidden" value="false" />
</div>
<div id="Comments">
</div>

部分视图

@model PagedList.IPagedList<QIEducationWebApp.Models.CourseComment>
@using PagedList.Mvc;

@{
    ViewBag.Title = "Comments";
}

<h2>Comments!</h2>

<table>

@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.CommentDate)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.CommentText)
        </td>
    </tr>
}

</table>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<appSettings>
  <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
</appSettings>

<br />
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    @Html.PagedListPager(Model, page => Url.Action("ViewComments",
    new { courseID = @ViewBag.courseID, page }),
            PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(
                new PagedListRenderOptions { MaximumPageNumbersToDisplay = 5, DisplayLinkToFirstPage = PagedListDisplayMode.IfNeeded, 
                DisplayLinkToLastPage = PagedListDisplayMode.IfNeeded },
                new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "Comments" }))

BundleConfig.cs

public class BundleConfig
    {
        // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                        "~/Scripts/jquery-ui-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.unobtrusive*",
                        "~/Scripts/jquery.validate*"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css", "~/Content/PagedList.css"));

            bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                        "~/Content/themes/base/jquery.ui.core.css",
                        "~/Content/themes/base/jquery.ui.resizable.css",
                        "~/Content/themes/base/jquery.ui.selectable.css",
                        "~/Content/themes/base/jquery.ui.accordion.css",
                        "~/Content/themes/base/jquery.ui.autocomplete.css",
                        "~/Content/themes/base/jquery.ui.button.css",
                        "~/Content/themes/base/jquery.ui.dialog.css",
                        "~/Content/themes/base/jquery.ui.slider.css",
                        "~/Content/themes/base/jquery.ui.tabs.css",
                        "~/Content/themes/base/jquery.ui.datepicker.css",
                        "~/Content/themes/base/jquery.ui.progressbar.css",
                        "~/Content/themes/base/jquery.ui.theme.css"));
        }
    }

看一下这个:相关SO问题 https://stackoverflow.com/questions/17336165/ajax-pagination-in-pagedlist-mvc-using-partial-page

这将使用不显眼的 ajax 来为您进行替换。您只需要处理获取并跳过您的一端,然后将新的部分视图与模型一起发送回。

@Html.PagedListPager(Model, page => Url.Action("ViewComments", page }), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing( new AjaxOptions(){  HttpMethod = "GET", UpdateTargetId = "partialContainerYouNeedToReplace"}))

执行此操作时,请确保页面上引用了不显眼的 js。它带有开箱即用的 MVC,您只需要引用该捆绑包即可。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 4 在部分视图中使用分页列表 的相关文章

随机推荐

  • 我们可以在数据绑定中连接两个属性吗?

    我们可以在绑定表达式中将两个属性连接在一起吗 如果可能的话 无需转换器或无需编写两个文本块并单独设置它们 如果你想展示 请说FirstName and LastName 在一个单一的TextBlock 那么你可以这样做
  • 在 Internet Explorer 中使表单元素 onchange 冒泡

    如何使各种表单元素的 onChange 事件向上冒泡到 Internet Explorer 中的父表单对象 当选择框 单选按钮 几乎任何内容 在 IE 中发生更改时 不会触发父窗体的 onChange 我的表单是动态变化的 因此很难通过监听
  • 如何在rails中设置postgresql命令超时

    我正在使用heroku 和heroku postgresql 如何设置 db 命令超时 以便在 sql 命令花费时间超过 10 秒时出现异常 像这样配置你的database yml 关键是变量哈希 defaults default adap
  • 意外提交敏感信息 - GitLab

    我不小心提交了包含敏感数据的文件 我需要通过删除敏感数据来更新该文件 并确保旧版本不会出现在历史记录中 据我所知 那些在本地克隆了存储库的人仍然可以访问它 但是 一旦他们提取最新的数据 是否可以通过设置方式让他们看不到敏感数据继续前进或无法
  • 从矩阵中提取行并在 MATLAB 中创建一个新矩阵

    我有一个矩阵 X 1 1 2 2 3 3 4 4 Y 2 4 我想要一个结果矩阵z只有第 2 行和第 4 行 中的值Y of X 那是 Z 2 2 4 4 有什么解决办法吗 Z X Y 在我看来 这是一个很容易研究的问题 第一个结果 htt
  • 使用 ViewModel 中的多态性绑定到 XAML 中带有参数的方法

    我的 ResultView 中有一个带有六个选项卡的 TabControl 位于此视图后面的 ViewModel 可以是 ResultTypeOneViewModel 或 ResultTypeTwoViewModel 它们均派生自 Resu
  • Puppeteer 中的多浏览器与多选项卡

    我有 100 个网页 必须测试运行时错误 我发现 Puppeteer 插件可以 毫不费力 地做到这一点 但我遇到了一个困境 启动一个带有多个选项卡的浏览器 或者为每个链接创建一个新的浏览器 在这种情况下最好的方法是什么 我听说 在有多个选项
  • 为什么我的 Google 地图 API 密钥无效?

    这是我的第一个问题 我在研究中没有找到答案 我在旧网站 不是我的网站 上的 google 地图 API 密钥出现问题 tao yin com 法国气功协会 有两个月的时间 我为这个网站做了一张地图 在两个地方 Here http www t
  • 如何在 ncurses 中获得亮白色?

    如何初始化浅灰色背景和亮白色前景的颜色对 init pair number COLOR WHITE COLOR WHITE 创建一个具有浅灰色前景和背景的颜色对 但我需要前景是真正的白色 我尝试将 COLOR WHITE 与 A BLINK
  • 如何在 Rails webpacker 3 中使用 jQuery

    我生成一个新的 Rails 应用程序 rails new titi webpack vue 并想使用 jQuery 或其他库 如 popper vue resource 我尝试过了yarn add jquery这很好 但我无法在 JavaS
  • Gitlab6.0和Apache2

    请问如何使用Apache2设置Github 6 0 按照原来的说明安装Gitlab Unicorn rb 中的调整 listen home git gitlab tmp sockets gitlab socket backlog gt 64
  • python 使用图像谷歌图像进行搜索

    我在用 python 搜索谷歌图像搜索时遇到了非常困难的情况 我需要只使用标准 python 库 所以 urllib urllib2 json 有人可以帮忙吗 假设图像是 jpeg jpg 并且位于我运行 python 的同一文件夹中 我尝
  • Angular + ui-router:$stateChangeSuccess 在状态 b 上触发,但不在 a.b 上触发

    用户界面路由器 0 2 11 AngularJS 1 3 0 我很难理解为什么 BarCtrl 中的 stateChangeSuccess 事件处理程序没有在 foo bar 上触发 它在 bar 上触发 foo bar gt Consol
  • 将 Tkinter UI 关注点与 Python 应用程序中的逻辑分离

    这是我的第一个应用程序 它运行良好 但我想将 UI 问题 例如获取输入和创建标签 与翻译逻辑分开 然后 我想删除先前翻译的输出 即一次仅在屏幕上显示一个翻译 如何将翻译逻辑与 Tkinter GUI 分开 from Tkinter impo
  • 使用 CXF 时缺少 SoapAction 标头

    我有一个来自 WS 外部的 WSDL 文件 我正在连接到该文件 我正在尝试让它与 CXF 一起工作 与 JAX WS 一起工作正常 但我从其他系统收到错误 因此 我决定查看一下我们发送到该系统的数据 唯一的区别是 CXF 设置了空的 SOA
  • 获取远程端点的令牌时,ADAL js 在 IE 中不起作用

    获取远程端点的令牌时 ADAL js 在 IE 中不起作用 例子 https github com AzureADSamples SinglePageApp WebAPI AngularJS DotNet https github com
  • 在 SQL Server 中将日期格式转换为 DD/MMM/YYYY 格式

    我有一个查询SQL 我必须获取格式为dd mm yy 例子 25 jun 2013 我怎么能够convert it for SQL server 我不确定是否有与您想要的格式完全匹配的内容 但你可以近距离接触convert http msd
  • Facebook 图表“用户/家庭”提要现在包含难以识别的帖子项目活动

    当我进行 Graph 调用时https graph facebook com me home 我在我的提要中取回了一组分页的帖子 最近 我开始收到似乎代表 John Doe 喜欢某个页面 之类的项目 它们被标记为链接 但如果我向 FB 索要
  • 有人知道输出“模块已优化并且调试器选项“仅我的代码”已启用”吗?

    正如我在我的previous https stackoverflow com questions 13524569 how to use streamsocketlistener and streamsocket in windows 8
  • MVC 4 在部分视图中使用分页列表

    我正在尝试在部分视图中实现 PagedList 描述视图设置 我有Controller A with ViewA 这是父视图 有自己的模型 然后我有Controller B with PartialViewB并且也有自己的模型 然后我有一个