如果您有路线:
routes.MapRoute("search", "{controller}/{action}/{filter1}/{filter2}/{filter3}", _
New With {.filter1 = "", .filter2 = "", .filter3 = ""})
然后在一个由 url 的路由模式满足的视图中/member/search/dev/phil/hoy
,当您尝试创建另一个仅filter1
存在的路由 url 即
<%=Url.RouteUrl(New RouteValueDictionary(
New With {.controller="member",.action="search", .filter1="dev"}))%>
结果是当前路线/member/search/dev/phil/hoy
,而不是预期的修剪路线/member/search/dev
我已经设法通过RouteTable.Routes.GetVirtualPath
直接使用方法来解决这个问题,但是有谁知道它为什么会这样工作,或者它可能是一个错误?