Я довольно новичок в Mvc и столкнулся с проблемой, пытающейся использовать изображение как ссылку Ajax Action. Я нашел помощника, который я считаю, был вывешен Стивен Walther ...Asp.net Mvc2 Ajax ImageActionLink Helper
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 со ссылкой как простой текст.
Как и в случае сбоя почти всех комбо, которые я пытался, я возвращал тип MvcHtmlString вместо стандартной строки, указанной в этом конкретном помощнике.
Когда я добавить помощника, проект обыкновение строить, потому что он говорит Метод Replace() не существует. –
Да, это то, что я сказал. Вы должны вызвать 'ToString()' на результат, полученный из 'helper.ActionLink()'. – Necros
Прошу прощения, я не видел ToString() в конце вашей первой строки, определенно работает сейчас! Спасибо! –