Вот пример. Предположим, что вы хотите обернуть ссылки в тег div
с некоторым заданным классом так, чтобы получающийся HTML-код выглядел так:
<div class="foo"><a href="/home/index">Some text</a></div>
Вы можете написать следующий метод расширения:
public static class HtmlExtensions
{
public static MvcHtmlString CustomRouteLink(
this HtmlHelper htmlHelper,
string className,
string linkText,
object routeValues
)
{
var div = new TagBuilder("div");
div.MergeAttribute("class", className);
div.InnerHtml = htmlHelper.RouteLink(linkText, routeValues).ToHtmlString();
return MvcHtmlString.Create(div.ToString());
}
}
, который можно использовать так:
<%= Html.CustomRouteLink("foo", "Some text",
new { action = "index", controller = "home" }) %>
, и это даст желаемую разметку. При необходимости можно использовать любые другие перегрузки RouteLink
.