在Html.ActionLink的linkText中使用HTML标记

时间:2011-02-08 18:11:59

标签: asp.net-mvc actionlink html.actionlink

是否可以在Html.ActionLink的linkText中使用HTML标记?例如,如果我想加粗链接文本的一部分,我会尝试类似的东西:

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%>

但这只是输出

Some <b>bold</b> text

我知道我可以通过使用锚标记并使用Url.Action设置网址来实现此目的,但我只是想知道这是否可行。

4 个答案:

答案 0 :(得分:31)

Html.ActionLink助手HTML对链接文本进行编码,阻止您在链接文本中嵌入HTML。

出于同样的原因,你不能使用Html.ActionLink并传入一个标签来使图像成为超链接。

对于链接的基本样式,我建议使用其中一个Html.ActionLink重载来通过匿名对象语法指定CSS样式,如此...

@Html.ActionLink("Please Edit Me", "Edit", null, new { style="font-weight:bold;" })

不幸的是,当你想要的只是单词Edit to bold时,它会粗体显示超链接的整个文本。在这种情况下,我会这样做......

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a>

......或者......

<a href="@Url.Action("Edit")">Please <span style="font-weight:bold;">Edit</span> Me</a>

答案 1 :(得分:7)

没有;这是不可能的。
您需要手动编写<a>标记。

答案 2 :(得分:1)

这对我有用:

@Html.Raw(@Html.ActionLink("XXX", "Index", new { }, new { @class = "FormBtn" }).ToHtmlString().Replace("XXX","<u>Back to List</u>"))

基本上使用ActionLink创建带有占位符的html,以替换要替换的内容(&#39; XXX&#39;),然后将其转换为HTML字符串,将替换占位符替换为标记,将字符串呈现为HTML .RAW。

答案 3 :(得分:0)

这是不可能的,但您可以为此创建HtmlHelper,请参阅here或使用Url.Action而不是我推荐的内容。