2013-08-22 122 views
4

我需要一个类添加到这个链接:添加类Html.ActionLink - ASP.NET MVC 3

@Html.ActionLink("Sign Out", "LogOff", "Account") 

但是,当我这样做:

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

链接指向家庭控制器,而不是帐户控制器,因此投掷404.

/Home/LogOff?Length=7 

我做错了什么?

感谢

回答

16

尝试使用ActionLink助手的正常过载(是的,有过载的gazillions):

@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智能感知(F12,而您的光标在ActionLink助手上)。

出于这个原因,我更愿意把它写在使用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("Sign Out", "LogOff", "Account", null, new{@class="btn blue"})

+2

啊,达林拍我来吧 – pinmonkeyiii