【问题标题】:Partial view rendering in new page while paging using Pagedlist使用 Pagedlist 分页时在新页面中呈现部分视图
【发布时间】:2013-04-09 17:51:59
【问题描述】:

继续 PartialView rendering on new page 所以在解决上述问题后,我添加了分页。

我处理部分视图和分页的控制器方法是

public ActionResult CreateAdmin(string sortOrder, int? page)
    {
        int pageSize = 10;
        int pageNumber = 1;
        if (page != null)
            pageNumber = Convert.ToInt32(page);

        var result = SortResult(sortOrder);

        return PartialView("AdminSearchResult", result.ToPagedList(pageNumber, pageSize));
    }

在我的部分观点中,我正在通过

@model PagedList.IPagedList<MyApplication.Models.Administration>

动态渲染局部视图的jquery是

<script type="text/javascript">
$(document).ready(function (e) {
    $("#SearchResultbtn").click(function (e) {
        e.preventDefault();
        $("#searchResult").load('@Url.Action("AdminSearchResult", "Administration")');
    });
});    

我的视图只是一个如下图所示的表格

<table class="searchResult" border="1" width="100%">
    <thead>
        <tr>
            <th>
            </th>
            <th>
                @Html.ActionLink("Last Name", "AdminSearchResult", new { sortOrder = ViewBag.LastNameSortParm, currentFilter = ViewBag.CurrentFilter, @class = "linkClicked" })
            </th>
            <th>
                Middle Name
            </th>
            <th>
                @Html.ActionLink("First Name", "AdminSearchResult", new { sortOrder = ViewBag.FirstNameSortParm, currentFilter = ViewBag.CurrentFilter })
            </th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr class="parent">                    
                <td>
                    @item.LastName
                </td>
                <td>
                    @item.MiddleName
                </td>
                <td>
                    @item.FirstName
                </td>
            </tr>
        }
    </tbody>        
</table>

我的分页和排序工作正常。问题是,当我单击“名字”的 ActionLink 或任何听者对整个部分视图进行排序时,都会在新页面中呈现。

我的猜测是 jquery 需要更新,但是如何更新。

【问题讨论】:

    标签: jquery asp.net-mvc-3 pagedlist


    【解决方案1】:

    从你提到的行为来看,我认为你只需要这样的东西:

    @Ajax.ActionLink("First Name", "AdminSearchResult", new { sortOrder = ViewBag.FirstNameSortParm, currentFilter = ViewBag.CurrentFilter }, new AjaxOptions { UpdateTargetId = "searchResult" }, null)
    

    基本上是做页面的部分更新,而不是整页刷新?

    要在 MVC 中成功使用 ajax 方法,您需要执行以下操作。将此键添加到 web.config 中的 appsettings:

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

    以及包含不显眼的 ajax 脚本:

    <script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
    

    【讨论】:

    • 嘿,白鲸。再次感谢您的回复。不是它没有工作。当我单击“名字”对部分视图进行排序时,会在新页面中打开。
    • 该页面上是否包含不显眼的 AJAX 或 MVC Ajax 脚本?
    • 不,我不知道。我应该包括它吗??
    • 是的,你需要它来使用 MVC 中的 AJAX 助手。我为你更新了我的答案。
    • 哦,我明白了。所以添加上述设置与将控件放在Updatepanel中以进行asp.net中的部分更新???..
    猜你喜欢
    • 2013-09-24
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 2014-11-21
    相关资源
    最近更新 更多