母版页链接生成错误 - s#arp架构

时间:2012-03-12 09:51:09

标签: asp.net-mvc s#arp-architecture

我正在使用s#arp架构2.0和asp.net mvc 3.0。母版页中的剃刀代码如下所示:

 @Html.ActionLink("Logout", "LogOff", "Users", new { style = "color:Blue;" })

由于某种原因,应用程序不再生成正确的链接(对于控制器用户的操作注销),而是指向操作注销的当前控制器。我没有改变任何事情。我需要在哪里挖掘才能克服这个问题?

生成的链接如下所示:

CurrentControllerName /注销?长度= 5

1 个答案:

答案 0 :(得分:5)

您正在调用ActionLink助手的wrong overload。这是你做的:

@Html.ActionLink(
    "Logout",                         // linkText
    "LogOff",                         // actionName
    "Users",                          // routeValues
    new { style = "color:Blue;" }     // htmlAttributes
)

很明显为什么这不会产生正确的网址。您正在传递"Users"这是一个字符串值,它位于助手期望routeValues的位置,该位置必须代表一个匿名对象。

correct overload是:

@Html.ActionLink(
    "Logout",                         // linkText
    "LogOff",                         // actionName
    "Users",                          // controllerName
    null,                             // routeValues
    new { style = "color:Blue;" }     // htmlAttributes
)