使用ASP.NET Razor中的C#和Html.ActionLink创建空链接

11

如何使用Html.ActionLink来呈现以下链接 -

<a href="javascript:void(0);"></a>

这样做可能看起来很傻,但有时候我需要一个具有链接功能(悬停指针等)但不指向任何页面的链接。我想使用 Html.ActionLink 以保持代码一致性。

我尝试了不同变化的 Html.ActionLink,但总是收到关于某些内容不允许为空的错误消息。


3
如果链接中只需要这个,为什么不直接使用它呢?完全跳过Html.ActionLink。你需要从Html.ActionLink中获取特定的内容吗? - Leniency
同意。只使用一个锚点。 - Dave Alperovich
我尝试了各种不同的Html.ActionLink变体,但我一直收到有关不允许为空的消息。我想使用Html.ActionLink来保持代码的一致性,并且希望在单击链接时存在一个链接而不发生任何事情。谢谢! - A Bogus
ActionLink生成一个链接到操作,正如其名称所示。你不想要一个链接到操作,因此ActionLink不是正确的工具。如果你经常需要这个功能,你可以创建自己的帮助方法。 - Andre Loker
2个回答

15
@Html.ActionLink(" ", "", "", new {href="javascript:void(0)"})
将呈现为

<a href="javascript:void(0)"> </a>

谢谢Joe。但我的问题是我想要一个没有“链接文本”的解决方案,而你的解决方案给出了值不能为空或为空。 参数名称:linkText - A Bogus
1
只用一个空格可以吗?否则我们可以尝试使用自定义辅助方法。出于好奇,如果没有内容需要滚动,那么如何触发翻转指针? - Joe
一个空格就可以了!谢谢!对不起,我有点儿迟钝。回答你的问题,链接在一个带有背景图片的 div 中。 - A Bogus

6

不要强制使用 ActionLink 完成它不适合的任务,考虑创建自己的辅助方法:

public static class MyHtmlExtensions
{
    public static MvcHtmlString EmptyLink(this HtmlHelper helper, string linkText)
    {
        var tag = new TagBuilder("a");
        tag.MergeAttribute("href", "javascript:void(0);");
        tag.SetInnerText(linkText);
        return MvcHtmlString.Create(tag.ToString());
    }
}

将命名空间导入您的视图中,您就可以执行以下操作:

@Html.EmptyLink("My link text")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接