还有什么更好的网址?

时间:2011-08-07 07:36:04

标签: asp.net-mvc routing

还有什么更好的网址?

这样:

Forum/{forumId}/Section/{sectionId}/Thread/{threadId}/

例如:

Forum/1/Section/2/Thread/3

当ID = 3的主题包含在ID = 2的部分中,该部分包含在ID = 1的论坛中时,返回一些视图,否则(ID = 3的主题包含在ID =的部分中) 5)返回404错误


或只是

Forum/{ForumId}
Section/{SectionId}
Thread/{ThreadId}

3 个答案:

答案 0 :(得分:2)

我也认为第一个更好但是有必要在url中显示文本(论坛,部分或主题),你可以这样做:

Forum/{forumId}/{sectionId}/{threadId}/

将在您的网址中以这样的方式显示

http://www.yourwebsite.com/Forum/1/2/3

通过这个你将实现你想要的那样......

答案 1 :(得分:1)

我认为这些是嵌套资源。我更喜欢浅路线......

  • 论坛/ - 所有论坛(如果有)
  • 论坛/ 1 - 论坛ID 1并显示所有部分
  • 第1节 - 第1节索引[所有主题](您赢得了不需要论坛ID,因为该部分是论坛的嵌套资源
  • 主题/ 1 - 主题ID 1(嵌套资源

IMO,网址越短,越容易记住。 :)

答案 2 :(得分:1)

您的网址应具有以下功能:

  1. 标识符,以便您知道要显示的内容
  2. 内容说明,以便用户通过浏览网址告诉他们将会看到什么
  3. 内容说明,以便最大化搜索引擎优化。
  4. 考虑到这一点,我建议如下,这是选项2的变体:

    对于论坛:

    Forum/{forumId}/{forumName}
    

    对于某个部分:

    Section/{sectionId}/{forumName}/{sectionName}
    

    对于一个帖子:

    Thread/{threadId}/{forumName}/{sectionName}/{threadTitle}
    

    您实际上不会使用所包含的forumNamesectionNamethreadTitle,但它们可以帮助您完成上述第2点和第3点。