ASP.NET MVC 添加排序功能(代码段)

文章目录[隐藏]
在索引方法中添加排序功能

后台代码

public ActionResult Index(string sortOrder)
        {
            ViewBag.NameSortParm = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
            var students = from s in db.Students
                           select s;
            switch (sortOrder)
            {
                case "name_desc":
                    students = students.OrderByDescending(s => s.LastName);
                    break;
                case "Date":
                    students = students.OrderBy(s => s.EnrollmentDate);
                    break;
                case "date_desc":
                    students = students.OrderByDescending(s => s.EnrollmentDate);
                    break;
                default:
                    students = students.OrderBy(s => s.LastName);
                    break;
            }
            return View(students.ToList());
        }
这段代码从 URL 中接收 sortOrder 查询字符串,该字符串是由 ASP.NET MVC 作为参数传递给动作方法的。该参数将是”Name”或”Date”之一,这是作为升序的缺省的排序规则。还可能有一条下划线和”desc”来指示这是一个降序排序。
索引页面第一次请求时,没有任何查询字符串被传递,学生们按照 LastName 的升序排序显示。这是 switch 语句中的 default 指定的,当用户点击某列的标题超链接时,相应的 sortOrder 值通过查询字符串传递到控制器中。
两个 ViewBag 变量被用于为视图提供合适的查询字符串值。
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";

前台添加代码:

@Html.ActionLink("Last Name", "Index", new { sortOrder = ViewBag.DateSortParm })

我感觉这个代码应该常用吧,免得忘记!

原文地址参见:http://www.cnblogs.com/Bce-/p/3698874.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值