Asp.net mvc 使用ASP.NET MVC2,如何使过滤器与可攻击的URL一起工作?

Asp.net mvc 使用ASP.NET MVC2,如何使过滤器与可攻击的URL一起工作?,asp.net-mvc,filtering,Asp.net Mvc,Filtering,考虑一下要开始的电子商务向下钻取模型,导航栏上的关键字链接进一步限制了当前显示的每个选择的产品列表 我设置了一个房屋查找器,路线如下: http://{website.com}/{Housetype}/{PriceLow}-{PriceHigh} http://mysite.com/Residential/180000-230000 http://mysite.com/Commercial/300000-500000 但现在我想在侧导航上添加链接,进一步限制内容: 1 Bedroom 2 Be

考虑一下要开始的电子商务向下钻取模型,导航栏上的关键字链接进一步限制了当前显示的每个选择的产品列表

我设置了一个房屋查找器,路线如下:

http://{website.com}/{Housetype}/{PriceLow}-{PriceHigh}
http://mysite.com/Residential/180000-230000
http://mysite.com/Commercial/300000-500000
但现在我想在侧导航上添加链接,进一步限制内容:

1 Bedroom
2 Bedroom
4 Bedroom

1-4 Acres
4-10 Acres
10+ Acres
我如何使用MVC在点击之间传递和维护选择?我认为我的选择是:

  • 继续在查询字符串中添加命名参数,如/{acres}:{low}-{high},但这将要求所有参数都存在,我不能选择多个条件,或者我达到了最大查询字符串长度
  • 一旦我知道了{housetype}和{price range},然后切换到一个完全不同的策略,可能会传递一个对象(比如DTO),该对象将.AddCriteria(“Acres”,“gt”,“1”)。添加标准(“英亩”、“低矮”、“4”)等。。。。这听起来很复杂
  • 还有别的吗

  • 再次,寻找初学者答案,这是将筛选和排序条件从客户端发送到ASP.NET MVC的最常见的方法(几乎是设计模式方法)。链接也很有帮助。

    几周前,我构建了一个URL表达式解析器,它将根据URL中的表达式过滤IQuerable。基本上,您可以构建自己的表达式并将其插入解析器中。。。或者你可以用像/price-greaterthan-3/price-lessthan-4000/acres-lessthan-10这样的标准易读方式来完成/


    路线定义是什么样的?它们必须按特定顺序排列吗?当它们不在那里时会发生什么?基本上,你需要一个“一网打尽”的路由,它将把所有的表达式从你的URL末尾拉出来。它应该先去。。。或者至少在默认路由之前。