Общее решение: включите любую бритву, которую вы хотите, внутри ссылки действия
Существует гораздо лучшее решение с использованием делегатов шаблонов Razor, которое позволяет очень естественным образом вставить любой код Razor в ссылку действия. Таким образом, вы можете добавить изображение или любой другой код.
Это метод расширения:
public static IHtmlString ActionLink<T>(this AjaxHelper ajaxHelper,
T item, Func<T,HelperResult> template, string action,
string controller, object routeValues, AjaxOptions options)
{
string rawContent = template(item).ToHtmlString();
MvcHtmlString a = ajaxHelper.ActionLink("$$$", action,
controller, routeValues, options);
return MvcHtmlString.Create(a.ToString().Replace("$$$", rawContent));
}
Вот как это можно использовать:
@Ajax.ActionLink(car,
@<div>
<h1>@car.Maker</h1>
<p>@car.Description</p>
<p>Price: @string.Format("{0:C}",car.Price)</p>
</div>, ...
Это позволяет писать Razor с intellisense и использовать любой объект, который вы хотите для шаблона (ViewModel или любой другой объект, например, автомобиль в моем примере). И вы можете использовать любой помощник внутри шаблона для вложения изображений или любого другого элемента.
Примечание для пользователей Resharper
Если вы используете R # в своем проекте, вы можете добавить R # аннотаций для улучшения Intellisense:
public static IHtmlString ActionLink<T>(this AjaxHelper ajaxHelper, T item,
Func<T, HelperResult> template,
[AspMvcAction] string action, [AspMvcController] string controller,
object routeValues, AjaxOptions options)