1

我在 MVC 中工作,需要将博客 url 从现在更改为/about/blog……/blog说起来容易做起来难,哈哈。

我正在浏览控制器和其他各种 .vb 文件来尝试解决这个问题,并且遇到了 URL 路由系统。

以下有什么区别(暂时忽略命名)

    ' Route 1
    routes.MapRoute( _
        "legal", _
        "{action}",
        New With {.controller = "home", .action = "index"},
        New With {.action = "^(terms|privacy|cookies|responsiblegaming|disclaimer|legal|acceptableuse)$"},
        New String() {"ProjectMVC"}
    )

    ' Route 2
    routes.MapRoute( _
        "legal", _
        "{action}",
        New With {.controller = "home", .action = "index"},
        New With {.action = "^[a-zA-Z_]+$", .slug = "^[a-zA-Z][a-zA-Z0-9_\-\|]*$"},
        New String() {"ProjectMVC"}
    )

我认为我最困惑的是知道它在寻找和做什么,即 - 这是什么意思"^[a-zA-Z_]+$"和这个 "^[a-zA-Z][a-zA-Z0-9_\-\|]*$"

4

1 回答 1

4

您正在查看的是路线限制。基本上,您使用约束(在您的情况下,这些是正则表达式约束)来告诉路由系统在哪些条件下可以调用这些路由。

第一个 RegEx 值^[a-zA-Z_]+$表示“动作可以以括号之间定义的任何字符开始和结束。这些只能由小写字母az、大写字母AZ和下划线字符。重复一次或多次。”

更准确地说,“在给定类 [a-zA-Z_] 中定义的任何字符一次或多次。”

另一个值是^[a-zA-Z][a-zA-Z0-9_\-\|]*$表示“一个 slug 必须以字母az或大写字母AZ开始和结束,之后它可以有零个或多个在azAZ范围内的字符,或 0 之间的数字和 9,或下划线、破折号或竖线”。

就是这样。您可能想了解有关正则表达式的更多信息。检查这个网站 正则表达式

于 2013-06-06T11:55:31.000 回答