首先多条件筛选大家都知道,先上图:

此图中有不少属性,属性对应一些值,熟悉cms的同学都知道,其实无论是属性还是属性值都应该能从后台动态添加的(这个问题不在此讨论),然后前台显示时需要进行点击筛选,筛选实现的功能无非是接收参数,然后拼接sql语句,然后我现在在这里想说的是拼接后sql处理的问题,一般来说sql形式多种多样,例:
1.http://search.jd.com/search?keyword=%E8%A1%AC%E8%A1%AB%20%E5%A5%B3&enc=utf-8&qrst=1&ps=addr&rt=1&stop=1&sttr=1&ev=8635_106756%40&uc=0#select
最原始,最好处理,看去也大概知道是什么参数,但太长了,听说也不利于seo?
2.http://www.51aspx.com/CodeList/1!0!0!0!0!0!0!0!0!-1i4
应该是用了重写,地址变短,但仍然不够好看,并且无论有没有选那一项都好,也会带默认参数
3.http://www.58dm.com/list/guochan-2015-rexue
大概也是用了重写,地址变短,一看就知道是 国产,2015,热血,相比上面2的地址处理来说我认为好些,这个在不选某项的情况下,不会再带多余的参数,选哪个带哪个。(我觉得这种地址最好了,这里-应该可以换成/)
问题是这里,看两个对比地址:
http://www.58dm.com/list/guochan-rexue
http://www.58dm.com/list/guochan-guoyu
两地址的区别在于最后那个参数,一个是剧情是热血,一个是配音是国语。我现在的重写如果用来这里判断(没用流行的重写组件,自己拦截了一下正则处理),单从拦截的数据来看,是无法知道rexue到底是剧情?还是配音?还是状态还是年份?的值?
有人说接收参数之后,遍历分类,找到rexue此值对应的属性,再查找数据,这,到底不爽。。。。
各位判断一下,还是说如果用rewrite组件就能识别到底这个参数是什么?
帖子比较长,我描述得可能也不清楚,各位尽力耐心看完,有会的帮下,谢谢了。。。
------解决思路----------------------
你这个不就是route么?
------解决思路----------------------
asp.net4开始Webform也可以用route了
------解决思路----------------------
你描述的 url 参数实际只是 2 种:
1、传统的带识别标志(变量名)的:qrst=1、ps=addr
可被 web 服务器识别和解析,变量的含义与位置无关。只需通过变量名就可知道是否存在和值是多少
2、类 path_info 的。
path_info 是以 / 做分节符,你示例的分节符还有 ! 和 -
由于没有明确的含义标识,所以是以变量在序列中的位置来确定含义的
对于
http://www.58dm.com/list/guochan-rexue
http://www.58dm.com/list/guochan-guoyu
你只能通过词义分析来判别需求。但如果在不同分类中有相同的单词的话.....
你至少需要给不常用的单词组合附加识别信息
这与 MVC 的路由没什么关系。
你都不知道该往哪里走,机器又如何能知道?