asp.net-mvc – ASP.NET MVC:自定义排序
发布时间:2020-12-16 09:20:18 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在我的小型asp.net mvc应用程序中实现自定义排序.那里有很多可用的plgins.但这次我想自己做. 这是我的表头: tr th S.No. /th th @Html.ActionLink("UrlTitle","Index",new { SortOrder = ViewBag.SortOrder == null ? "Asc" : (ViewBag.SortOrder
我正在尝试在我的小型asp.net mvc应用程序中实现自定义排序.那里有很多可用的plgins.但这次我想自己做.
这是我的表头: <tr> <th> S.No. </th> <th> @Html.ActionLink("UrlTitle","Index",new { SortOrder = ViewBag.SortOrder == null ? "Asc" : (ViewBag.SortOrder == "Asc"? "Desc":"Asc"),SortBy = "UrlTitle" }) </th> <th> @Html.DisplayNameFor(model => model.Url) </th> <th> @Html.DisplayNameFor(model => model.UrlDesc) </th> <th> @Html.DisplayNameFor(model => model.tbl_Category.CategoryName) </th> </tr> 这就是行动: public ActionResult Index(String SortOrder,String SortBy) { ViewBag.SortOrder = SortOrder; ViewBag.SortBy = SortBy; var model = ObjBs.GetAll().Where(x=>x.IsApproved == "A"); switch(SortOrder) { case "Asc": model = model.OrderBy(x => x.UrlTitle); break; case "Desc": model = model.OrderByDescending(x => x.UrlTitle); break; } return View(model); } 目前,我可以按UrlTitle排序,它没有任何问题.但如果我也想按其他列排序,我写了这样的东西: switch(SortBy) { case "UrlTitle": switch(SortOrder) { case "Asc": model = model.OrderBy(x => x.UrlTitle); break; case "Desc": model = model.OrderByDescending(x => x.UrlTitle); break; default: break; } break; case "Category": switch (SortOrder) { case "Asc": model = model.OrderBy(x => x.UrlTitle); break; case "Desc": model = model.OrderByDescending(x => x.UrlTitle); break; default: break; } break; case "URL": switch (SortOrder) { case "Asc": model = model.OrderBy(x => x.UrlTitle); break; case "Desc": model = model.OrderByDescending(x => x.UrlTitle); break; default: break; } break; default: break; } 因为我可以通过参数传递列名,而不是编写嵌套开关,所以我不能这样做: model = model.OrderBy(x => x.SortBy); Or,model = model.OrderBy(SortBy); 好吧,我认为当程序运行时,SortBy的值将是columnName.但它似乎不起作用. 我只是不想反复写相似的代码.如何最小化它或使其更好? 解决方法
如果您不想使用反射路径,则应该能够使用
dynamic Linq进行查询.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.Net MVC – 重载动作方法
- asp.net-mvc – requestValidationMode =“2.0”实际上是做
- 经典ASP:不支持Server.CreateObject
- asp.net-mvc – 将MVC添加到现有的ASP.net网站
- ASP.NET MVC 富文本Ueditor编辑 后台传值前端乱码解决方案
- ASP.NET 使用Swagger开发Web API接口项目
- Asp.Net – 什么是<%$?
- ASP.NET开发人员真的需要关心线程安全吗?
- asp.net-mvc-3 – 如果在Razor中的else语句不起作用
- asp.net-mvc-3 – 在F#中的ViewBag动态对象上设置属性
推荐文章
站长推荐
- asp.net-mvc – 如何将MVC 5 IdentityModels.cs移
- 实体框架 – 带有实体框架的MVC 3和ASP.Net脚手架
- asp.net – PlaceHolder vs Literal,用于添加在运
- asp.net – 元素’ToolkitScriptManager’不是已
- asp.net – 带有自定义数据的web api帖子图片
- 是否可以在ASP.NET中使用MSChart导出/保存工具提
- asp.net – 为什么不调用我的IHttpHandler?
- 连字符前分割字符串 – asp.net c#
- 在ASP.NET应用程序的global.asax中处理Applicati
- asp.net-mvc – 从MVC控制器调用异步方法
热点阅读