【问题标题】:Why Html.ActionLink isn't working in Bootstrap Modal?为什么 Html.ActionLink 在 Bootstrap 模式中不起作用?
【发布时间】:2016-07-25 17:09:31
【问题描述】:

我有一个解决方法,但为了我自己的理解,我试图弄清楚为什么 @Html.ActionLink 在引导模式中不起作用?

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

【问题讨论】:

    标签: asp.net-mvc twitter-bootstrap


    【解决方案1】:

    您使用的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" })
    

    【讨论】:

    • 就是这样。我假设这里使用@Html.Actionlink 或@Url.Action 没有区别?
    • Url.Action 生成该特定操作方法的相对路径。 Html.ActionLink 使用正确的 href 属性值生成 a 标记的标记。
    猜你喜欢
    • 2018-03-10
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2017-05-04
    • 1970-01-01
    • 2013-04-03
    • 2021-09-26
    相关资源
    最近更新 更多