我试图让路由约束与使用 REGEX 路由的路径中的 GUID 一起工作,但看不到我哪里出错了。
url 被重新路由到正确的页面,但正则表达式被完全忽略(我可以放入任何垃圾并且它匹配所有内容)。
这是代码:(注意-这不是 MVC,而是 ASP.Net 4.5 上的网络表单)
Imports System.Web.Routing
Imports Microsoft.AspNet.FriendlyUrls
Public Module RouteConfig
Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.EnableFriendlyUrls()
Dim guidRegex As String = "^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$"
routes.MapPageRoute("Redirect", "r/{lid}", "~/redirect.aspx", True, New RouteValueDictionary(New With {.lid = guidRegex}))
End Sub
End Module
我已经用其他正则表达式尝试了这种技术(示例直接从 Microsoft 站点复制),但它也不起作用。我做错了什么,但我无法弄清楚。