@Html.ActionLink 在 mvc-5 中不起作用

Posted

技术标签:

【中文标题】@Html.ActionLink 在 mvc-5 中不起作用【英文标题】:@Html.ActionLink not working in mvc-5 【发布时间】:2017-10-14 06:14:54 【问题描述】:

我正在 mvc-5 中创建一个 Web 应用程序

这是我的动作链接按钮,看起来像

<p>
    <span class="btn btn-success glyphicon glyphicon-plus">
        @html.ActionLink(" ", "insert")
    </span>
</p>

当用户点击这个按钮时,他应该被重定向到下一个页面

public ActionResult insert()
        
            return View();
        

但是当我点击按钮时什么都没有发生

我需要做什么?

【问题讨论】:

您需要正确提供参数。至少,控制器名称、动作名称和显示文本。请检查 - msdn.microsoft.com/en-us/library/… 这个带有这个按钮的 html 在同一个控制器渲染的页面内(例如在 index 动作内)? @Alisson 是的,两者都在同一个控制器上 我也会留意 ActionLink 并了解 Url.Action 和 Html.ActionLink 之间的区别。 99% 的情况下,您会想要在 ASP.NET Razor 中使用 @Url.Action("ControllMethodName","ControllName") HTML.ActionLink 与 Url.Action 但无论哪种情况,最重要的是要记住,“ ControllerMethodFunctionNAmeHere","AwesomeCoolControllerNameHere" 【参考方案1】:

您的链接格式看起来不正确。

你只有

 @Html.ActionLink(" ", "insert")

添加您的“链接文本”、操作和控制器名称,您应该没问题。

@Html.ActionLink("Link Text", "YourAction", "YourController")

注意:如果链接目标由同一个控制器处理,则 ActionLink 有 9 个重载允许您省略控制器(除其他外)。

希望有帮助

【讨论】:

OP 正在使用this overload,它有两个参数——链接文本和动作名称! @StephenMuecke - 好吧..所以他有一个链接(没有链接文本),其跨度大概是为了显示一个按钮....那么你认为他的动作不在同一个控制器中吗? (刚刚看到你的答案:)) OP 已经确认它在同一个控制器中 - 它只是没有什么可点击的:)【参考方案2】:

因为您没有在链接中生成任何文本,所以没有什么可以“点击”的。

更改您的代码以生成包含&lt;span&gt; 元素的链接

<p>
    <a href="@Url.Action("insert")">
        <span class="btn btn-success glyphicon glyphicon-plus"></span>
    </a>
</p>

【讨论】:

以上是关于@Html.ActionLink 在 mvc-5 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 @Html.ActionLink 中添加图像

是否可以在 Html.ActionLink 上同时添加 CSS 类和返回确认?

如何改进在样式 div 内使用 Html.ActionLink 的按钮

如何在 C# 代码中使用 MVC 3 @Html.ActionLink

MVC html.actionlink

使用 Html.ActionLink 在不同的控制器上调用动作