myślę odpowiedź Andrew Hare jest poprawna. Jeśli masz nieco bardziej skomplikowane wymagania, masz możliwość utworzenia własnego AjaxHelper lub HtmlHelper. Będzie to wymagało stworzenia metod niestandardowych rozszerzeń, które działają na AjaxHelper i HtmlHelpers, robiąc coś takiego:
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());
}
}
Można użyć dotPeek lub ulubionego narzędzia .NET refleksji do zbadania standardowe rozszerzenia, które pochodzą z ASP.NET MVC (np. ActionLink) itp., aby dowiedzieć się, w jaki sposób Microsoft wdrożył większość z tych metod rozszerzenia. Mają dość dobre wzorce do pisania tych. W przeszłości podjąłem takie podejście, aby uprościć generowanie kodu HTML w czytelny sposób, na przykład w przypadku Google Maps lub integracji Bing Maps, w celu utworzenia opcji, takich jak ActionImage
, np. @Html.ActionImage(...)
lub w celu zintegrowania wyprowadzania HTML w formacie tekstylnym poprzez umożliwienie składni takiej jak @Html.Textile("textile formatted string")
.
Jeśli zdefiniujesz to w oddzielnym zestawie (tak jak ja), pamiętaj o włączeniu go do referencji projektu, a następnie dodaj go również do pliku Web.config projektu.
Oczywiście, podejście to jest przesadą dla twoich konkretnych celów iz tego powodu mój głos jest dla podejścia Andrew Hare do twojego konkretnego przypadku.
Być może będziesz musiał p to w @ Html.Raw te dni. –