asp.net-mvc-3 – 根据asp.net mvc3中的下拉列表数据获取列表
发布时间:2020-12-16 00:18:30 所属栏目:asp.Net 来源:网络整理
导读:我的模块中有两个下拉列表. 在一个下拉列表中,我对所有运算符进行了硬编码,例如,, =, =,== 在第二个下拉列表中,我有员工的硬编码,如1000,2000,3000,4000 …. 50000 现在如果我选择从一个列表和2000从第二个列表中单击提交按钮我应该得到薪水低于2000的员工列
我的模块中有两个下拉列表.
在一个下拉列表中,我对所有运算符进行了硬编码,例如<,>,< =,> =,== 在第二个下拉列表中,我有员工的硬编码,如1000,2000,3000,4000 …. 50000 现在如果我选择<从一个列表和2000从第二个列表中单击提交按钮我应该得到薪水低于2000的员工列表. 我想在asp.net mvc3中这样做 我怎样才能完成这项任务?我需要为此编写存储过程吗? 我创建了下拉列表,如: viewModel.OperatorsList = new[] { new SelectListItem { Value = "<",Text = "<" },new SelectListItem { Value = ">",Text = ">" },new SelectListItem { Value = "<=",Text = "<=" },new SelectListItem { Value = ">=",Text = ">=" },new SelectListItem { Value = "==",Text = "==" } }; viewModel.SalaryList = new[] { new SelectListItem { Value = "1000",Text = "1000" },new SelectListItem { Value = "2000",Text = "2000" },new SelectListItem { Value = "3000",Text = "3000" },// and so on }; 我用它来显示视图中的下拉列表: <%: Html.DropDownListFor(x => x.Operators,Model.OperatorsList)%> 解决方法
好吧,你可以做那样的事情
假设viewModel是…你的viewModel,并且你有一个具有属性Salary的实体Employee(此示例中为int,它在现实世界中可能是小数) 创建一个静态助手类 public static class MyHelper { // a dictionary for your operators and corresponding ExpressionType public static Dictionary<string,ExpressionType> ExpressionTypeDictionary = new Dictionary<string,ExpressionType> { {"<",ExpressionType.LessThan},{">",ExpressionType.GreaterThan},{">=",ExpressionType.GreaterThanOrEqual} //etc }; //a method to filter your queryable public static IQueryable<Employee> FilterSalary(this IQueryable<Employee> queryable,int salary,string operatorType) { //left part of the expression : m var parameter = Expression.Parameter(typeof(Employee),"m"); //body is the right part of the expression : m Expression body = parameter; //m.Salary body = Expression.Property(body,"Salary"); //m.Salary <= 1000 (for example) body = Expression.MakeBinary(ExpressionTypeDictionary[operatorType],body,Expression.Constant(salary)); //m => m.Salary <=1000 var lambda = Expression.Lambda<Func<Employee,bool>>(body,new[] { parameter }); //so it will be queryable.Where(m => m.Salary <= 1000) return queryable.Where(lambda); } } 用法 var queryable = context.All<Employee>();//or something like that,returning an IQueryable<Employee> queryable = queryable.FilterSalary(viewModel.Salary,viewModel.Operators); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – Asp.Net自定义路由和自定义路由并在控制器之
- asp.net – 在数据库中存储日期时间?
- asp.net – 实体框架:如何解决“FOREIGN KEY约束可能导致循
- asp.net-mvc – ASP.NET MVC,BDD,Specflow和WatiN:将应用程
- asp.net-mvc-4 – Azure计算模拟器中MVC4 Web API runnin中
- asp.net-mvc – 我的模型中名为Title的属性与我视图中的Vie
- asp.net – RadComboBox中的重音不敏感搜索
- ASP.NET Core 运行原理剖析
- asp.net-mvc-3 – ASP.NET Web Api – 从查询字符串值和API
- asp.net-mvc – C#MVC FindPartialView无法找到路径
推荐文章
站长推荐
- 为什么ASP.NET自动生成的.designer代码的类型不正
- asp.net – 如何保护我的AngularJS和Web Api应用
- model-view-controller – 有没有办法在ASP.MVC
- asp.net-mvc – MVC简单模型绑定无法正常工作
- 如何在asp.net中更改javascript警告框的标题?
- asp.net – 如何尊重“从无Cookie域中提供静态内
- asp.net – 防止在ASP .Net中为单个用户进行多次
- asp.net-web-api – Web Api使用IDependencyReso
- asp.net – 将webforms项目转换为混合MVC4项目
- Asp.net动态验证器无法在Chrome或Safari中使用
热点阅读