Je pense que la réponse de Andrew Hare est correct. Si vous avez des besoins légèrement plus compliqués, vous avez la possibilité de créer votre propre AjaxHelper ou HtmlHelper. Cela impliquera la création de méthodes d'extension personnalisée qui travaillent sur AjaxHelper et Html, en faisant quelque chose comme:
public static class CustomHtmlHelperExtensions
{
public static MvcHtmlString FormattedActionLink(this HtmlHelper html, ...)
{
var tagBuilder = new TagBuilder("a");
// TODO : Implementation here
// this syntax might not be exact but you get the jist of it!
return MvcHtmlString.Create(tagBuilder.ToString());
}
}
Vous pouvez utiliser dotPeek ou votre outil de réflexion .NET favori pour examiner les extensions standards qui viennent avec ASP.NET MVC (par exemple, ActionLink) etc. pour trouver comment Microsoft a implémenté la plupart de ces méthodes d'extension. Ils ont de très bons modèles pour les écrire. Par le passé, j'ai adopté cette approche pour simplifier la sortie du HTML de façon lisible, comme pour l'intégration de Google Maps ou Bing Maps, pour créer des options comme ActionImage
, par exemple, @Html.ActionImage(...)
ou pour intégrer le formatage Textile HTML en activant une syntaxe telle que @Html.Textile("textile formatted string")
. Si vous définissez ceci dans un assembly séparé (comme je le fais), n'oubliez pas de l'inclure dans vos références de projet, puis de l'ajouter également au fichier Web.config du projet.
De toute évidence, cette approche est excessive pour vos besoins spécifiques, et pour cette raison, mon vote est pour l'approche d'Andrew Hare pour votre cas spécifique.
Vous pourriez avoir à emballer p cela dans @ Html.Raw ces jours-ci. –