2009-10-10 74 views
16

我需要一个链接的包裹<span>文本中:ASP.NET MVC:如何在Html.ActionLink的链接中包含<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标签。在加载AJAX内容时,制表标签需要包装在<span>中以获得动画。

回答

10

你需要用Url.Action来完成,据我所知Html.ActionLink没有办法。

+0

谢谢很好清除我的疑问 – Rakeshyadvanshi 2016-02-02 09:40:18

21

您可以使用Url.Action辅助方法作为解决方法(以防其他答案更符合您的需求)。

例如,下面就可以在您的视图标记的:

<a href="<%= Url.Action("Edit", 
         New With {.id = "bar"}) %>"> 
<span>Edit Group</span> 
</a> 
+0

谢谢。是的,那就是我最终做的。 – royco 2009-10-10 06:07:33

9

你也可以推出自己的HtmlHelper扩展方法,其实我更喜欢这种方法,你可以控制IDS的位置,类,以及其他属性,如标题。

这是一个blog post,我把这个主题放在一起。

+0

这太棒了。但是诚实地说[Razor团队](https://github.com/aspnet/Razor/issues/248)需要认识到,对于这种链接的定制有一个公平的需求,他们应该考虑提供一个选项“Raw (_)'在动作链接中渲染。 – 2014-12-01 01:25:42

+0

你看过TagHelpers吗? http://channel9.msdn.com/Shows/Web+Camps+TV/Create-your-own-Domain-Specific-Language-in-ASPNET-with-TagHelpers – 2014-12-05 01:00:30

3

这个怎么样:

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

@Html.Raw(url); 

// NICE HACK:推荐使用以前的意见,写一个助手来包装这个向上。

相关问题