Using HTML tags inside linkText of Html.ActionLink

孤人 提交于 2019-11-27 04:45:59

问题


Is it possible to use HTML tags in the linkText of Html.ActionLink? For instance, if I wanted to bold part of the text of a link I would try something similar to this:

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

but that just outputs

Some <b>bold</b> text

I know I could do this by using an anchor tag and setting the URL with Url.Action, but I just wanted to know if this was possible.


回答1:


No; it's not possible.
You need to manually write an <a> tag.




回答2:


The Html.ActionLink helper HTML encodes the link text which prevents you from embedding HTML in the link text.

For this same reason you cannot use Html.ActionLink and pass in an tag to make an image a hyperlink.

For basic styling of a link, I'd recommend using one of the Html.ActionLink overloads to specify a CSS style via the anonymous object syntax like so...

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

Unfortunately, that applies bold to the entire text of the hyperlink when what you're wanting is just the word Edit to be bold. In which case I would do this...

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

... or this ...

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



回答3:


This works for me:

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

Essentially use the ActionLink to create the html with a placeholder for what you want to replace ('XXX'), then convert it an HTML String, replace the placeholder with your markup, render the string as HTML.Raw.




回答4:


It's not possible, but you could create a HtmlHelper for this, see here or use Url.Action instead what I would recommend you.



来源:https://stackoverflow.com/questions/4936681/using-html-tags-inside-linktext-of-html-actionlink

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!