问题
I'm trying to output the following HTML using Html.ActionLink:
<a href="/About" class="read-more">Read More<span class="arrow">→</span></a>
I'm getting it done by doing an ActionLink, which outputs an <a>
tag and then manipulating the string.
<%= Html.ActionLink("[[replace]]", "Index", "About", null, new { @class = "read-more" }).ToHtmlString().Replace("[[replace]]", "Read More" + "<span class='arrow'>→</span>")%></p>
It'd be good if I could put HTML directly into the ActionLink but there doesn't seem to be a way based on my internet searches. Sure, it works but it seems like a hack. Is there a better way to accomplish this?
回答1:
Aaron...Did you work this out?
I use Url.Action in the href attribute when I need something other than just the link text in the outputted HTML.
<a href="<%= Url.Action("About") %>" class="read-more">Read More<span class="arrow">→</span></a>
Hope this helps.
Cheers, -jc
回答2:
You could write you're own HTML helper class and make it fit whatever needs you have. I've wrote a few before, I see the ones you get with MVC as just a start.
Here's a link with a tutorial. And here's and official MS video on how to.
回答3:
If all you need is the arrow and you could use an image, you could use stylesheet to put that image after the link
.readmore-link{background-image: url('/image.png'); padding-right: 16px; /*...*/}
just tweak the image position etc.
Otherwise I'd recommend writing extension method for HtmlHelper.
来源:https://stackoverflow.com/questions/2428948/edit-html-actionlink-output-string