У меня есть следующий маршрут, зарегистрированный в моем global.asax.
routes.MapRoute(
"Home", // Unique name
"", // Root url
new { controller = "Home", action = "Index",
tag = string.Empty, page = 1 }
);
Kewl. когда я запускаю сайт, он правильно подхватывает этот маршрут.
Теперь, когда я пытаюсь программно сделать следующее, он возвращает NULL.
var pageLinkValueDictionary =
new RouteValueDictionar(linkWithoutPageValuesDictionary)
{{"page", 2}};
VirtualPathData virtualPathData =
RouteTable.Routes.GetVirtualPath(viewContext, "Home"
pageLinkValueDictionary);
// NOTE: pageLinkValueDictionary ==
// Key: Action, Value: Index; Key: page, Value: 2
Почему это происходит?
У меня сложилось впечатление, что он найдет маршрут Home, но добавит значения, не найденные в качестве элементов строки запроса?
Обновление
Все еще не повезло с этим. Также, используя MVC RC , мне нужно изменить viewContext на veiwContext.RequestContext .., который компилируется, но я все еще получаю нулевой результат.
Обновление 2
Когда у меня есть маршрут без элемента page=1
по умолчанию, маршрут НАЙДЕН .
например.
routes.MapRoute(
"Home",
"",
new { controller = "Post", action = "Index", tags = string.Empty }
);
.. и RouteTable.Routes.GetVirtualPath
возвращает экземпляр VirtualPathData
. Когда я снова добавляю page=1
(значение по умолчанию), экземпляр VirtualPathData
возвращает ноль?