我有以下一条路线,在我的 global.asax 中注册。
routes.MapRoute(
"Home", // Unique name
"", // Root url
new { controller = "Home", action = "Index",
tag = string.Empty, page = 1 }
);
科尔。当我启动该站点时,它正确地选择了这条路线。
现在,当我尝试以编程方式执行以下操作时,它返回 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
默认项目的路线时,路线IS FOUND。例如。
routes.MapRoute(
"Home",
"",
new { controller = "Post", action = "Index", tags = string.Empty }
);
..并RouteTable.Routes.GetVirtualPath
返回一个VirtualPathData
实例。当我重新添加page=1
(默认值)时,VirtualPathData
返回的实例为空?