我正在使用s#arp架构2.0和asp.net mvc 3.0。母版页中的剃刀代码如下所示:
@Html.ActionLink("Logout", "LogOff", "Users", new { style = "color:Blue;" })
由于某种原因,应用程序不再生成正确的链接(对于控制器用户的操作注销),而是指向操作注销的当前控制器。我没有改变任何事情。我需要在哪里挖掘才能克服这个问题?
生成的链接如下所示:
CurrentControllerName /注销?长度= 5
答案 0 :(得分:5)
您正在调用ActionLink助手的wrong overload。这是你做的:
@Html.ActionLink(
"Logout", // linkText
"LogOff", // actionName
"Users", // routeValues
new { style = "color:Blue;" } // htmlAttributes
)
很明显为什么这不会产生正确的网址。您正在传递"Users"
这是一个字符串值,它位于助手期望routeValues
的位置,该位置必须代表一个匿名对象。
@Html.ActionLink(
"Logout", // linkText
"LogOff", // actionName
"Users", // controllerName
null, // routeValues
new { style = "color:Blue;" } // htmlAttributes
)