Вы всегда можете написать один метод расширения, который принимает в качестве аргумента еще один (один из встроенных) и оборачивает <span>
вокруг текста ссылки перед его вызовом. Это должно быть довольно легко сделать с лямбдами ...
public static string SpanLink(this HtmlHelper helper,
string linkText, object args, Action<string> action)
where TController : IController
{
action("<span>" + linkText + "</span>", args);
}
И назвать это:
<%= Html.SpanLink<HomeController>("link text", (s) => Html.ActionLink<HomeController>(c => c.Index(s));
(Этот код вводится непосредственно в поле ответа SO - я даже не проверял его, чтобы убедиться, что он компилируется. Так что терпите меня, если он не работает с первой попытки ...)