Я думаю, что ответ Эндрю Хара правильный. Если у вас есть несколько более сложные требования, у вас есть возможность создать свой собственный AjaxHelper или HtmlHelper. Это будет включать создание пользовательских методов расширения, которые работают с AjaxHelper и HtmlHelpers, выполнив что-то вроде:
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());
}
}
Вы можете использовать dotPeek или ваш любимый инструмент отражения .NET, чтобы изучить стандартные расширения, которые поставляются с ASP.NET MVC (например, ActionLink) и т. Д., Чтобы выяснить, как Microsoft реализовала большинство этих методов расширения. У них есть довольно хорошие шаблоны для их написания. В прошлом я использовал этот подход, чтобы упростить вывод HTML в удобочитаемом виде, например, для интеграции с Google Maps или Bing Maps, для создания таких опций, как ActionImage
, например, @Html.ActionImage(...)
, или для интеграции вывода HTML с форматированием текстиля с помощью включающий синтаксис, такой как @Html.Textile("textile formatted string")
.
Если вы определите это в отдельной сборке (как я), то не забудьте включить это в ссылки на ваш проект, а затем добавьте его и в файл Web.config проекта.
Очевидно, что этот подход излишний для ваших конкретных целей, и по этой причине я голосую за подход Эндрю Хэра для вашего конкретного случая.