asp.net-mvc-3 – 根据asp.net mvc3中的下拉列表数据获取列表
发布时间:2020-05-29 23:47:57 所属栏目: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 – 在C#中,我如何从一个字节[]中知道文件类型?
- asp.net-mvc – ASP.NET MVC:使用EditorFor()和枚举的默认
- asp.net-mvc-3 – 子动作是否与其“父母”动作共享相同的Vi
- asp.net – 内容控件必须是顶级控件
- ASP.NET Cookie过期时间始终是1/1/0001 12:00 AM
- asp.net – 控制器SessionStateBehavior是ReadOnly,我可以更
- ASP.NET Web API返回可查询的DTO?
- asp.net-mvc – 我需要有关HandleError的更多信息
- asp.net-mvc-4 – 将项目升级到MVC 5
- asp.net-core – 将命名空间添加到ASP.NET MVC 6中的所有视
推荐文章
站长推荐
- asp.net – MVC5认证中的“和主域之间的信任关系
- .net – 排除某些页面使用HTTPModule
- asp.net – app_offline.htm在生产框中抛出HTTP
- 要监控已部署的ASP.NET Web应用程序的关键性能指
- asp.net中Session缓存与Cache缓存的区别分析
- asp.net-mvc – 单元测试MVC控制器
- asp.net – 在使用预编译的Razor视图和VirtualPa
- asp.net-ajax – 建议使用不引人注意的AJAX与MVC
- asp.net-mvc – 如何在ASP.NET MVC视图中对HTML列
- asp.net-mvc – 我什么时候应该在ASP.NET MVC中创
热点阅读
