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

Tim*_*nks 17 asp.net-mvc actionlink html.actionlink

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

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%>
Run Code Online (Sandbox Code Playgroud)

但那只是输出

Some <b>bold</b> text
Run Code Online (Sandbox Code Playgroud)

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

Nev*_*ord 31

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

出于同样的原因,您不能使用Html.ActionLink并传入标记以使图像成为超链接.

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

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

不幸的是,当您想要的只是单词Edit to bold时,这会粗体应用于超链接的整个文本.在这种情况下我会这样做......

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a>
Run Code Online (Sandbox Code Playgroud)

... 或这个 ...

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


SLa*_*aks 7

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

  • 4年后仍然不可能吗? (7认同)
  • 3年后仍然不可能吗? (3认同)
  • 5年后仍然不可能吗? (3认同)
  • @MartinBuberl:是的。这些助手用于_简单_用例;它们从未打算取代 HTML 标签。 (2认同)