首页新闻找找看学习计划

MVC4如何处理多条件查询

0
悬赏园豆:30 [已解决问题] 解决于 2014-02-26 20:28

比如前台有如下代码:

用户编号:@Html.TextBoxFor(u => u.UserNumber)   用户年龄:在 @Html.TextBoxFor(u =>u.Age )到 @Html.TextBoxFor(u => u.Age)


我希望后台接收到上述model.system_user对象后能够自己判断内容是否为空,不为空生成where(p=>p.UserNumber='01222' && p.Age>=10 && p.Age<=20),

最笨的办法就是自己手工判断了,不知道有什么好方法可以自动生成?谢谢指导

happydaily的主页 happydaily | 小虾三级 | 园豆:674
提问于:2014-02-21 11:35
< >
分享
最佳答案
0

你应该是想Linq多条件查询吧。这个可以使用PredicateBuilder类和LinqKit来实现。参考地址:http://zzk.cnblogs.com/s?w=PredicateBuilder&t=b

收获园豆:30
幻天芒 | 高人七级 |园豆:36594 | 2014-02-21 14:41

后台如何得知OR And =这种关系呢?

happydaily | 园豆:674 (小虾三级) | 2014-02-21 14:55

@happydaily: 这个就需要你前台传递到后台了。

幻天芒 | 园豆:36594 (高人七级) | 2014-02-21 18:02

@幻天芒: 问题就出在这,不知道有啥好思路,前台提交什么代码,后台能转成lambda表达式而不需要手动判断.

happydaily | 园豆:674 (小虾三级) | 2014-02-21 18:20

@幻天芒: 有好的解决思路吗,给个谢谢.

happydaily | 园豆:674 (小虾三级) | 2014-02-21 18:21

@happydaily: 可以将字符串转换为Lambda表达式,这个我也不会。你可以参开下资料,http://www.cnblogs.com/zhucai/archive/2009/06/10/LambdaParser_Lambda_Expression_Parser.html。

对于这样的查询,一般做法是架构条件的key value传递到后台,然后在后台通过if判断结合PredicateBuilder来实现动态的where条件。

幻天芒 | 园豆:36594 (高人七级) | 2014-02-22 11:28
其他回答(1)
0

dynamic linq或者自己写扩展

灯塔下的守望者 | 园豆:118 (初学一级) | 2015-05-13 10:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册