【发布时间】:2008-11-07 14:08:21
【问题描述】:
我有以下一条路线,在我的 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 实例为空?
【问题讨论】:
-
我也有这个问题,用 asp.net-mvc3 和 razor。
标签: asp.net-mvc global-asax routes