Если у вас есть маршрут:
routes.MapRoute("search", "{controller}/{action}/{filter1}/{filter2}/{filter3}", _
New With {.filter1 = "", .filter2 = "", .filter3 = ""})
затем в представлении, удовлетворенном шаблоном маршрута с URL-адресом /member/search/dev/phil/hoy
, при попытке создать другой URL-адрес маршрута только с filter1
существующим, т.е.
<%=Url.RouteUrl(New RouteValueDictionary(
New With {.controller="member",.action="search", .filter1="dev"}))%>
результат - текущий маршрут /member/search/dev/phil/hoy
, а не ожидаемый обрезанный маршрут /member/search/dev
Мне удалось обойти проблему, используя метод RouteTable.Routes.GetVirtualPath
напрямую, но кто-нибудь знает, почему он работает таким образом, или это, возможно, ошибка?