我有一条路线(有效):
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()
似乎根本不起作用,尽管路线有效。
这里发生了什么?
答案 0 :(得分:1)
我刚才可以通过将“item.Id”更改为“item.Id.ToString()”来解决此问题。可能不是理想的解决方案,但对我来说已经足够了。
答案 1 :(得分:0)
我有一个类似的问题(我认为),实际上路由约束因为IRouteConstraint正在检查而失败
routeDirection == RouteDirection.IncomingRequest
而RouteLink HTML助手实际上会产生
routeDirection == RouteDirection.UrlGeneration