在ASP的最新(RC1)版本中。NET MVC,我怎么得到Html。ActionLink渲染为按钮或图像而不是链接?


当前回答

我喜欢像这样使用Url.Action()和Url.Content():

<a href='@Url.Action("MyAction", "MyController")'>
    <img src='@Url.Content("~/Content/Images/MyLinkImage.png")' />
</a>

严格来说,Url。内容只在路径不是您问题答案的一部分时才需要。

感谢@BrianLegg指出这应该使用新的Razor视图语法。示例已相应更新。

其他回答

甚至后来的反应,但我只是遇到了一个类似的问题,最终写我自己的图像链接HtmlHelper扩展。

你可以在我的博客上面的链接中找到它的实现。

只是为了防止有人在寻找一个实现。

借用帕特里克的回答,我发现我必须这样做:

<button onclick="location.href='@Url.Action("Index", "Users")';return false;">Cancel</button>

避免调用表单的post方法。

URL . action()将为您提供大多数Html重载的纯URL。ActionLink,但我认为URL-from-lambda功能只能通过Html使用。ActionLink到目前为止。希望他们会给Url添加类似的重载。在某种程度上采取行动。

你可以说我过于简单,但我就是这么做的:

<a href="<%: Url.Action("ActionName", "ControllerName") %>">
    <button>Button Text</button>
</a>

你只需要处理超链接突出显示。我们的用户喜欢它:)

这是一个很晚的回答,但这是我如何将ActionLink变成一个按钮的。我们在我们的项目中使用Bootstrap,因为它很方便。不要介意@T,因为它只是我们使用的一个翻译器。

@Html.Actionlink("Some_button_text", "ActionMethod", "Controller", "Optional parameter", "html_code_you_want_to_apply_to_the_actionlink");

上面给出了一个如下图所示的链接:

localhost:XXXXX/Firms/AddAffiliation/F0500

在我看来:

@using (Html.BeginForm())
{
<div class="section-header">
    <div class="title">
        @T("Admin.Users.Users")
    </div>
    <div class="addAffiliation">
        <p />
        @Html.ActionLink("" + @T("Admin.Users.AddAffiliation"), "AddAffiliation", "Firms", new { id = (string)@WorkContext.CurrentFirm.ExternalId }, new { @class="btn btn-primary" })
    </div>
</div>

}

希望这对大家有所帮助