Asp.net mvc 为什么Html.ActionLink不是';t在引导模式下工作?

Asp.net mvc 为什么Html.ActionLink不是';t在引导模式下工作?,asp.net-mvc,twitter-bootstrap,Asp.net Mvc,Twitter Bootstrap,我有一个解决办法,但为了我自己的理解,我试图弄明白为什么@Html.ActionLink在引导模式下不起作用 我创建了一个注销控制器,它执行一些日志记录,并在重定向之前清理一些会话变量。我能够使用@Html.ActionLink在布局页面上创建一个注销链接,没有问题。然而,我也有一个视图,它使用了引导模式。当我使用相同的@Html.ActionLink时,它不起作用 @Html.ActionLink("OK", "Index", "LogOut", new { @class = "btn btn

我有一个解决办法,但为了我自己的理解,我试图弄明白为什么@Html.ActionLink在引导模式下不起作用

我创建了一个注销控制器,它执行一些日志记录,并在重定向之前清理一些会话变量。我能够使用@Html.ActionLink在布局页面上创建一个注销链接,没有问题。然而,我也有一个视图,它使用了引导模式。当我使用相同的@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为什么不起作用

您使用的
ActionLink
重载错误

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

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    object routeValues,
    object htmlAttributes
)
第四个参数用于传递路由值(querystring值),第五个参数用于链接的html属性

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

您使用的
ActionLink
重载错误

试试这个过载

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    object routeValues,
    object htmlAttributes
)
第四个参数用于传递路由值(querystring值),第五个参数用于链接的html属性

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

就这样。我假设在这里使用@Html.Actionlink或@Url.Action?
Url.Action
生成特定操作方法的相对路径没有区别
Html.ActionLink
a
标记生成具有适当
href
属性值的标记。就是这样。我假设在这里使用@Html.Actionlink或@Url.Action?
Url.Action
生成特定操作方法的相对路径没有区别
Html.ActionLink
使用适当的
href
属性值为
a
标记生成标记。