Другой вариант - визуализировать ссылку на действие в MvcHtmlString как обычно, используя либо HTML.ActionLink, либо Ajax.ActionLink (в зависимости от вашего контекста), а затем написать класс, который принимает обработанную MvcHtmlString и взламывает текст ссылки html непосредственно в уже обработанную MvcHtmlString и возвращает другую MvcHtmlString.
Итак, это класс, который делает это: [пожалуйста, обратите внимание, что код вставки / замены ОЧЕНЬ прост, и вам, возможно, придется увеличить его для обработки большего количества вложенных html]
namespace Bonk.Framework
{
public class CustomHTML
{
static public MvcHtmlString AddLinkText(MvcHtmlString htmlString, string linkText)
{
string raw = htmlString.ToString();
string left = raw.Substring(0, raw.IndexOf(">") + 1);
string right = raw.Substring(raw.LastIndexOf("<"));
string composed = left + linkText + right;
return new MvcHtmlString(composed);
}
}
}
И тогда вы бы использовали это в представлении, как это:
@Bonk.Framework.CustomHTML.AddLinkText(Ajax.ActionLink("text to be replaced", "DeleteNotificationCorporateRecipient"), @"Link text <span>with further descriptive text</span>")
Преимущество этого подхода заключается в отсутствии необходимости воспроизводить / понимать процесс рендеринга тегов.