我需要向这个链接添加一个类:
@Html.ActionLink("Sign Out", "LogOff", "Account")
但是当我这样做时:
@Html.ActionLink("Sign Out", "LogOff", "Account",new{@class="btn blue"})
链接指向 Home 控制器,而不是 Account 控制器,因此会抛出 404。
/Home/LogOff?Length=7
我究竟做错了什么?
谢谢
我需要向这个链接添加一个类:
@Html.ActionLink("Sign Out", "LogOff", "Account")
但是当我这样做时:
@Html.ActionLink("Sign Out", "LogOff", "Account",new{@class="btn blue"})
链接指向 Home 控制器,而不是 Account 控制器,因此会抛出 404。
/Home/LogOff?Length=7
我究竟做错了什么?
谢谢
尝试使用适当的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" }
)
调用 ActionLink 时,有几个重载函数可以调用它。您要使用的是 Html.ActionLink("Link Text", "Action Name", Controller", "Route Values", HTML Attributes")
所以是这样的:@Html.ActionLink("Sign Out", "LogOff", "Account", null, new{@class="btn blue"})