我在ASP.NET MVC中使用digg克隆来帮助更好地自学ASP.NET MVC。我一直在研究StackOverflow在传递类似的东西时如何处理路由,我想我认为使用干净的URL的重点是你没有像在SEO的URL末尾那样的东西?sort = blah。
是否有建议的方法在您的网址中包含许多可能的可选参数,同时保持其清洁。我有一些想法,我想得到一些反馈。
选项1:
使用通配符(yuck)
选项2:
将排序添加到URL的开头,因为它具有最大的覆盖率,并且在查看故事时始终适用。 Exampke(使用StackOverflow)
而不是?sort = featured ...
https://stackoverflow.com/featured/tagged/asp.net-mvc
https://stackoverflow.com/new/tagged/c#
https://stackoverflow.com/tagged/asp.net(某种默认值)
无论如何 - 我似乎无法想到其他任何方法。
答案 0 :(得分:3)
挂起,堆栈溢出 使用查询字符串参数进行排序,例如:
https://stackoverflow.com/questions/518812?sort=oldest#sort-top
/特色是不同的。在这种情况下,您将控制返回的记录,而不仅仅是它们的排序方式。
网址描述资源。查询字符串参数描述了资源的呈现方式。一般来说:
拥有查询字符串参数不会损害您的SEO。
答案 1 :(得分:2)
你应该采用最适合你的方法。有些事情需要考虑:
答案 2 :(得分:1)
假设您有一个名为StoryController的控制器,它会显示您的所有帖子。您可以使路线看起来像这样:
routes.MapRoute("FeatureTagged", "feature/tagged/{tag}", new {
controller = "Story", action = "ShowFeaturedByTag" });
routes.MapRoute("NewTagged", "new/tagged/{tag}", new {
controller = "Story", action = "ShowNewByTag" });
BTW,已经有一个关于digg的ASP.NET MVC克隆了。它被称为Kigg:http://www.codeplex.com/Kigg并且它在名为DotNetShoutout的网站上运行