Html.RouteLink href null尽管路由(貌似)工作

时间:2011-08-12 20:04:46

标签: asp.net-mvc-3

我有一条路线(有效):

routes.MapRoute(
    "Details", // Route name
    "{controller}/{id}", // URL with parameters
    new { controller = "Advisors", action = "Details", id = UrlParameter.Optional }, // Parameter defaults
    new { id = new GuidConstraint() } // Constraint
);

还有一个链接:

@Html.RouteLink(@item.FullName, "Details", new { controller = "Advisors", id = item.Id })

但是链接呈现为:

<a href="">David Wick</a>

基本上我的目标是拥有{controller}/{id}的路由,并且呈现的链接也采用该格式。使用Html.ActionLink()链接呈现为{controller}/{action}/{id}时,Html.RenderRoute()似乎根本不起作用,尽管路线有效。

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

我刚才可以通过将“item.Id”更改为“item.Id.ToString()”来解决此问题。可能不是理想的解决方案,但对我来说已经足够了。

答案 1 :(得分:0)

我有一个类似的问题(我认为),实际上路由约束因为IRouteConstraint正在检查而失败

routeDirection == RouteDirection.IncomingRequest

而RouteLink HTML助手实际上会产生

routeDirection == RouteDirection.UrlGeneration