2010-03-11 7 views
1

Je suis en train de produire le code HTML suivant à l'aide Html.ActionLink:Modifier Html.ActionLink chaîne de sortie

Je reçois ce fait en faisant un ActionLink, qui délivre une étiquette <a> puis manipuler la chaîne.

<%= Html.ActionLink("[[replace]]", "Index", "About", null, new { @class = "read-more" }).ToHtmlString().Replace("[[replace]]", "Read More" + "<span class='arrow'>→</span>")%></p> 

Ce serait bien si je pouvais mettre HTML directement dans le ActionLink, mais il ne semble pas être un moyen basé sur mes recherches sur Internet. Bien sûr, ça marche mais ça a l'air d'être un hack. Y a-t-il une meilleure façon d'accomplir cela?

Répondre

1

Vous pouvez écrire votre propre classe d'aide HTML et l'adapter à vos besoins. J'en ai écrit quelques-uns avant, je vois ceux que vous obtenez avec MVC comme un début.

Voici un link avec un tutoriel. Et here's et vidéo officielle MS sur la façon de.

1

Si tout ce que vous avez besoin est la flèche et vous pouvez utiliser une image, vous pouvez utiliser la feuille de style pour mettre cette image après le lien

.readmore-link{background-image: url('/image.png'); padding-right: 16px; /*...*/} 

juste modifier la position d'image, etc.

Sinon, je » d recommande d'écrire la méthode d'extension pour HtmlHelper.

2

Aaron ... Avez-vous travaillé?

J'utilise Url.Action dans l'attribut href lorsque j'ai besoin de quelque chose d'autre que le texte du lien dans le code HTML généré.

<a href="<%= Url.Action("About") %>" class="read-more">Read More<span class="arrow">→</span></a> 

Espérons que cela aide.

Cheers, -jc