ASP.NET MVC:如何在 Html.ActionLink 中包含 <span> 标签?

18

我需要将链接的文本用 <span> 包裹,例如:

<a href="/foo.html"><span>Edit Group</span></a>

我可以用Html.ActionLink实现这个功能吗?以下代码无效:

<%=Html.ActionLink("<span>Edit Group</span>", "Edit", New With {.id = "bar"})%>
它只是将<> HTML编码为&lt;&gt;
是否有简单的解决方案,还是应该使用Url.Action手动构建链接?
这是用于jQuery-UI标签页。标签标签需要包装在<span>中,以便在加载AJAX内容时获得动画效果。
5个回答

23
你可以使用Url.Action辅助方法作为解决方法(在没有更好的答案适用的情况下)。
例如,以下内容可以在你的视图中标记:
<a href="<%= Url.Action("Edit", 
                        New With {.id = "bar"}) %>">
 <span>Edit Group</span>
</a>

谢谢。是的,那就是我最终做的。 - royco

11

我所知道的是,你需要使用Url.Action来完成它,Html.ActionLink无法实现。


9
你也可以编写自己的HtmlHelper扩展方法,我实际上更喜欢这种方法,因为你可以控制id、class和其他属性(如标题)的位置。
这是我撰写的有关此主题的博客文章

这太棒了。但说实话,Razor团队需要意识到在链接中有一种公平的定制需求,并且他们应该考虑为操作链接提供“Raw( _ )”呈现选项。 - vulcan raven
你有研究过TagHelpers吗?http://channel9.msdn.com/Shows/Web+Camps+TV/Create-your-own-Domain-Specific-Language-in-ASPNET-with-TagHelpers - cory-fowler

4

3
这个怎么样?
@{
   var link = Html.ActionLink("{0}", "Edit", New {id = "bar"}).ToString();
   var url = string.Format(link, "<span>Edit Group</span>");
}

@Html.Raw(url);

//不错的技巧:建议使用先前的建议编写一个帮助程序来包装它。


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