2016-07-25 42 views
0

我有一個工作,但爲了我自己的理解,我試圖找出爲什麼@ Html.ActionLink不能在Bootstrap模式下工作?爲什麼Html.ActionLink不能在Bootstrap模式下工作?

我創建了一個LogOut控制器,它執行一些日誌記錄,並在重定向之前清理一些會話變量。我可以使用@ Html.ActionLink在我的佈局頁面上創建一個註銷鏈接,而不會出現問題。但是,我也有一個使用Bootstrap模式的View。當我使用相同的@ Html.ActionLink時,它不起作用。

@Html.ActionLink("OK", "Index", "LogOut", new { @class = "btn btn-success btn-lg" }) 

當我看着F12工具,我可以看到鏈接是不正確的。這就是它創造的。

<a class="btn btn-success btn-lg" href="/?Length=6">OK</a> 

但是,如果我在定位標記中使用@ Url.Action,它可以正常工作。這是有效的。

<a href='@Url.Action("Index","LogOut")' class="btn btn-success btn-lg">OK</a> 

我可以接受使用@ Url.Action,但我只是想了解爲什麼@ Html.ActionLink是行不通的。

回答

3

您正在使用的是ActionLink過載錯誤!

試試這個過載。

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper, 
    string linkText, 
    string actionName, 
    string controllerName, 
    object routeValues, 
    object htmlAttributes 
) 

第4個參數用於傳遞路由值(查詢字符串值),第5個用於鏈接的html屬性。

@Html.ActionLink("OK", "Index", "LogOut", null, new { @class = "btn btn-success btn-lg" }) 
+0

就是這樣。我假設使用@ Html.Actionlink或@ Url.Action沒有區別? – Caverman

+0

'Url.Action'產生到該特定操作方法的相對路徑。 'Html.ActionLink'產生具有正確'href'屬性值的'a'標記的標記。 – Shyju

相關問題