如何使用ActionLink生成哈希

时间:2017-09-04 02:55:20

标签: c# asp.net-mvc razor

我正在使用asp.net mvc。我需要生成一个如下所示的链接:

{{1}}

使用asp.net mvc ActionLink助手。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

FWIW,这有效:

@Html.ActionLink("Delete", "index", null, new { @class = "delete-field", href = "#" }) 

但是像前面提到的那样,做这样的事情并不是很重要。你也可以建立一个扩展方法(再次,矫枉过正):

public static class HtmlHelperExtensions
{
    public static MvcHtmlString HashLink(this HtmlHelper htmlHelper, string text, string className = "")
    {
        var anchor = new TagBuilder("a");
        anchor.InnerHtml = text;
        anchor.Attributes.Add("href", "#");

        if(!string.IsNullOrWhiteSpace(className))
        {
            anchor.AddCssClass(className);
        }

        return MvcHtmlString.Create(anchor.ToString());
    }
}

然后像这样使用它:

@Html.HashLink("Delete", "delete-field")

答案 1 :(得分:0)

顾名思义,ActionLink可以在MVC应用程序中创建指向Action的链接。由于您只是想创建一个不使用哈希的链接,我建议您使用您在问题中发布的HTML代码。这里不需要使用ActionLink或任何其他帮助。

答案 2 :(得分:0)

在这种情况下,我切换到@Url.Action方法并在链接后添加哈希,如下所示:

<a class="delete-field" href="@Url.Action("Action", "Controller")#hashvalue">Delete</a>

UrlHelper仅生成href标签的a部分,因此您可以根据需要添加内容。 API Reference