在 ASP.NET MVC 3 中 Html.ActionLink 如何添加类?

4
我需要给这个链接添加一个类:
 @Html.ActionLink("Sign Out", "LogOff", "Account") 

但是当我这样做:

@Html.ActionLink("Sign Out", "LogOff", "Account",new{@class="btn blue"})  

链接指向主页控制器,而不是账户控制器,因此会抛出404错误。
/Home/LogOff?Length=7

我做错了什么吗?
谢谢
2个回答

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
)

为什么你的代码不能运行?

是啊,Microsoft在重载方面搞砸了,如果你不小心就会陷入困境。

解决方案:阅读MSDN或使用Visual Studio Intellisense(当光标在ActionLink助手上时按F12)。

因此,我更喜欢以C# 4.0命名参数的明确方式编写它:

@Html.ActionLink(
    linkText:       "Sign Out",
    actionName:     "LogOff",
    controllerName: "Account",
    routeValues:    null,
    htmlAttributes: new { @class = "btn blue" }
)

1
当调用ActionLink时,有几个重载函数可供调用。您想使用的是Html.ActionLink("链接文本", "操作名称", "控制器", "路由值", HTML属性")。

因此,类似于这样: @Html.ActionLink("退出登录", "LogOff", "Account", null, new{@class="btn blue"})


2
啊,Darin 比我先完成了。 - pinmonkeyiii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接