2013-08-22 114 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