Динамические изображения и параметры форматирования с @ Ajax.ActionLink - PullRequest
1 голос
/ 19 марта 2012

Я пытаюсь изменить следующий рабочий код в Ajax.

   <a href="@Url.Action("Index", new { pn = pc })"> 
   <img src="@Url.Content("~/Photos/" + @photoFile[pc])", id = "imgnb" width = "100px" height = "150px" alt = "Photo" /></a>  <br />

Код должен обрабатывать строковую переменную [], @photoFile [pc]) и принимать форматирование (id = "imgnb" width = "100px" height = "150px" alt = "Фото").(imgnb - это css, без рамки изображения)

Здесь Со Моу построил помощник Ajax Проблема с помощником ajax.actionlink, возвращаемая строка .

Его код отлично работает сстатическое изображение без параметров.

         @Ajax.ImageActionLink("../../Photos/Children/albersona1.jpg", "Index", new { pn = pc }, new AjaxOptions
    {
      UpdateTargetId = "Selected Thumbnail",
      InsertionMode = InsertionMode.Replace,
      HttpMethod = "GET" })

Кто-нибудь знает, как изменить этот помощник для преобразования URL.Action в Ajax, чтобы он обрабатывал динамические изображения и параметры форматирования.

Любая помощь значительнооценил.

Спасибо, Джо

1 Ответ

3 голосов
/ 19 марта 2012
public static class ImageActionLinkHelper
{
    public static IHtmlString ImageActionLink(
        this AjaxHelper helper,
        string imageUrl,
        string actionName,
        object routeValues,
        object htmlAttributes,
        AjaxOptions ajaxOptions
    )
    {
        var builder = new TagBuilder("img");
        builder.MergeAttribute("src", imageUrl);
        builder.MergeAttributes(new RouteValueDictionary(htmlAttributes));
        var link = helper.ActionLink("[replaceme]", actionName, routeValues, ajaxOptions);
        var html = link.ToHtmlString().Replace("[replaceme]", builder.ToString(TagRenderMode.SelfClosing));
        return new HtmlString(html);
    }
}

, а затем:

@Ajax.ImageActionLink(
    Url.Content("~/Photos/" + photoFile[pc]),
    "Index",
    new { pn = pc },
    new { id = "imgnb", width = "100px", height = "150px", alt = "Photo" },
    new AjaxOptions
    {
        UpdateTargetId = "foo"
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...