这是一个更开放的问题。你对URL中的查询字符串有什么看法?在ASP.NET MVC中创建网站时,您花费大量时间思考和制作纯净的URL,只有在第一次使用查询字符串时,特别是在搜索表单上,它们才会被破坏。清理查询字符串
例如,我最近做了一个相当简单的搜索表单,其中有六个文本字段和两个或三个复选框和选择列表。这在提交时产生以下查询字符串
countrylcid=2057&State=England&StateId=46&Where=&DateFrom=&DateTo=&Tags=&Keywords=&Types
=1&Types=0&Types=2&Types=3&Types=4&Types=5&Costs=0.0-9.99&Costs=10.00-29.99&Costs=30.00-59.99&Costs=60.00-10000.00
美丽我想你会同意。一半的领域没有信息,列表输入的确非常冗长。
前一段我实现了一个简单的解决这个寻呼这就产生了URL,例如
www.yourdomain.com/browse/filter-on/page-1/perpage-50/
此所使用的全部接收路线抓住本质上是在过滤器上部分之后的替换查询字符串。工作得很好,但在提交表单时发生故障。
我很想听听人们提出的其他解决方案吗?有很多关于干净的URL的文章,但是针对的是asp.net开发人员创建的MVC已经涵盖的基本的宁静的URL。我有一半考虑潜入模型绑定中,以产生适当的解决方案。使用上述惯例,大查询字符串可以被重写为:
filter-on/countrylcid-2057/state-England/stateId-46/types-{1,0,2,3,4,5}/costs-{0.0-9.99,10.00-29.99,30.00-59.99,60.00-10000.00}/
这是否值得努力?
感谢,
“半打文本字段和两个或复选框和选择的三个列表相当简单的搜索页面。” Google的搜索表单“非常简单”。这个很复杂。在这种情况下,它可以产生一个复杂的URI。 – 2009-08-07 12:48:26