使用@ Ajax.ActionLink在视图中呈现局部视图时,不会应用排序机制

时间:2015-08-03 09:27:22

标签: c# asp.net ajax asp.net-mvc asp.net-mvc-4

我正在研究MVC 4项目。 我所做的是在我的视图中提供了 Ajax Action Link

@Ajax.ActionLink("Display All Resources", "Resources", "Resources", null, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "showAllResources"});

在那个动作链接上,我渲染了一个部分视图,它将显示数据库中的表格。

showAllResources 是一个div,我将在其中显示部分视图。

部分视图中,我提供了3种不同的 Ajax操作链接,以排序数据。

<th>
            @Ajax.ActionLink("First Name", "Resources", new { sortOrder = ViewBag.FirstNameSort }, new AjaxOptions { HttpMethod="GET"})
        </th>

        <th>
            @Ajax.ActionLink("Last Name", "Resources", new { sortOrder = ViewBag.LastNameSort }, new AjaxOptions { HttpMethod = "GET" })
        </th>
        <th>
            @Ajax.ActionLink("Release Date", "Resources", new { sortOrder = ViewBag.ReleasedDateSrot }, new AjaxOptions { HttpMethod = "GET" })
        </th>

这是控制器动作方法中的代码

 [OutputCache(NoStore=true,Duration=0,VaryByParam="*")]
 public ActionResult Resources(string sortOrder)
        {

            ViewBag.FirstNameSort = String.IsNullOrEmpty(sortOrder)?"name_desc":"";
            ViewBag.LastNameSort = String.IsNullOrEmpty(sortOrder) ? "lname_desc" : "";
            ViewBag.ReleasedDateSrot = sortOrder == "Date" ? "date_desc" : "Date";

            if(Request.IsAjaxRequest())
            {
                var tblUser = from s in rosterManagementContext.tblUsers
                              select s;
                switch (sortOrder)
                {
                    case "name_desc":
                        tblUser = tblUser.OrderByDescending(a => a.FirstName);
                        break;
                    case "lname_desc":
                        tblUser = tblUser.OrderByDescending(a => a.LastName);
                        break;
                    case "date_desc":
                        tblUser = tblUser.OrderByDescending(a => a.ReleaseDate);
                        break;
                    default:
                        tblUser = tblUser.OrderBy(a => a.FirstName);
                        break;

                }
                  return PartialView("_DisplayResources", tblUser.ToList());
            }

            LookupTblUserListViewModel wrapperViewModel = Helpers.ConfigureWrapperViewModel();
            return View(wrapperViewModel);
        }

当用户点击显示所有资源链接switch案例转到default并根据 FirstName 列对列表进行排序时,会发生什么情况。

  

但是当用户点击其他链接(例如 ReleaseDate LastName )对该列的数据进行排序时,它不会以排序格式显示数据,但会显示排序数据取决于列   调试器。

我已按照this链接了解有关在MVC中对分页和过滤进行排序

我错过了什么?

请帮助..

谢谢。

0 个答案:

没有答案