0

我正在使用 MVC4 和 Razor

当我动态创建 ActionLink 并希望有人能解释原因时,我得到了意想不到的结果:问题是当我将 null 作为 htmlAttribute 传递时,URL 生成正确。但是,当我传入一个值时,URL 的区域部分就搞砸了。

<li> @Html.ActionLink(link.LinkText, link.ActionName, link.ControllerName, rvd,link.ActionName.Equals(currentAction) && link.ControllerName.Equals(currentController)? new { @class = "currentMenuItem" }:null)</li>

http://localhost:48000/Accounts/Forum/TopicsGrid?Count=2&Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.Object%5D&Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.Object%5D

当我将 null 作为 htmlAttribute 传递时,它的正确:

<li> @Html.ActionLink(link.LinkText, link.ActionName, link.ControllerName, rvd, null)</li>   

http://localhost:48000/Forums/Forum/TopicsGrid/1
4

1 回答 1

0

ActionLink() 没有Dictionary, Object载。
由于您的最后一个参数是Object, routeValues 参数也被解释为 objetc,因此它读取RouteValudDictionary类的属性。

于 2012-09-09T17:10:51.910 回答