我需要在此链接中添加一个类:
@Html.ActionLink("Sign Out", "LogOff", "Account")
但是当我这样做时:
@Html.ActionLink("Sign Out", "LogOff", "Account",new{@class="btn blue"})
该链接指向归属控制器,而不是帐户控制器,从而抛出404。
/Home/LogOff?Length=7
我做错了什么?
由于
答案 0 :(得分:16)
尝试使用ActionLink
帮助程序的正确重载(是的,有过多的重载):
@Html.ActionLink(
"Sign Out", // linkText
"LogOff", // actionName
"Account", // controllerName
null, // routeValues
new { @class = "btn blue" } // htmlAttributes
)
而你正在使用:
@Html.ActionLink(
"Sign Out", // linkText
"LogOff", // actionName
"Account", // routeValues
new { @class = "btn blue" } // htmlAttributes
)
了解您的代码无效的原因?
是的,微软对这些超载造成了一团糟,如果你不小心,你会陷入陷阱。
解决方案:阅读MSDN
或使用Visual Studio Intellisense( F12 ,而光标位于ActionLink帮助程序上)。
出于这个原因,我更喜欢使用C#4.0命名参数以模式显式方式编写它:
@Html.ActionLink(
linkText: "Sign Out",
actionName: "LogOff",
controllerName: "Account",
routeValues: null,
htmlAttributes: new { @class = "btn blue" }
)
答案 1 :(得分:1)
调用ActionLink时,有几个重载函数可以调用它。您要使用的是Html.ActionLink(“链接文本”,“操作名称”,控制器“,”路由值“,HTML属性”)
这样的事情:@Html.ActionLink("Sign Out", "LogOff", "Account", null, new{@class="btn blue"})