Я довольно новичок в Mvc и столкнулся с проблемой, пытаясь использовать изображение в качестве ссылки Ajax Action. Я нашел помощника, которого, как мне кажется, написал Стивен Уолтер ...
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
namespace Helpers
{
public static class ImageActionLinkHelper
{
public static string ImageActionLink(this AjaxHelper helper, string imageUrl, string altText, string actionName, object routeValues, AjaxOptions ajaxOptions)
{
var builder = new TagBuilder("img");
builder.MergeAttribute("src", imageUrl);
builder.MergeAttribute("alt", altText);
var link = helper.ActionLink("[replaceme]", actionName, routeValues, ajaxOptions);
return link.Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing));
}
}
}
Однако метод «Заменить» не существует в используемой версии. (возможно, проблема с Mvc2, поскольку я считаю, что его приложение диспетчера контактов было приложением MVC1 ??). Быстрый поиск по документам, и я обнаружил, что метод «Заменить» устарел, и было предложено использовать «MvcHtmlString.Create ()». Я пытался несколько комбинаций в этом помощнике, использующих этот метод, и я не смог получить ссылку для рендеринга с изображением. Я бы либо получил ссылку, указывающую на правильное действие / контроллер и тег img в виде простого текста, либо наоборот на правильно отображенный img со ссылкой в виде простого текста.
Точно так же, как sidenote почти во всех комбинациях, которые я пробовал, я возвращал тип MvcHtmlString вместо стандартной строки, указанной в этом конкретном помощнике.