Как я могу сделать изображение как Ajax Action Link? - PullRequest
0 голосов
/ 12 февраля 2011

Как я могу сделать изображение как Ajax Action Link?

Ответы [ 3 ]

1 голос
/ 12 февраля 2011

Вы можете сделать это:

<a href="<%: Url.Action("someaction", "somecontroller") %>" id="mylink">
    <img src="<%: Url.Content("~/images/foo.png") %>" alt="foo" />
</a>

, а затем в отдельном файле javascript AJA. Укажите эту ссылку:

$(function() {
    $('#mylink').click(function() {
        $.ajax({
            url: this.href,
            type: 'GET',
            success: function(result) {
                alert('success');
            }
        });
        return false;
    });
});

А если вы хотите избежать супа тегов в своих представлениях, вы можете написать собственный помощник:

public static class HtmlExtensions
{
    public static MvcHtmlString ImageLink(this HtmlHelper htmlHelper, string actionName, string controllerName, object routeValues, object htmlAttributes, string imageSource)
    {
        var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext, htmlHelper.RouteCollection);
        var image = new TagBuilder("img");
        image.Attributes["src"] = urlHelper.Content(imageSource);
        var anchor = new TagBuilder("a");
        anchor.Attributes["href"] = urlHelper.Action(actionName, controllerName, routeValues);
        anchor.MergeAttributes(new RouteValueDictionary(htmlAttributes));
        anchor.InnerHtml = image.ToString(TagRenderMode.SelfClosing);
        return MvcHtmlString.Create(anchor.ToString());
    }
}

и тогда, на ваш взгляд, просто:

<%: Html.ImageLink(
    "someaction", 
    "somecontroller", 
    null, 
    new { id = "mylink" }, 
    "~/images/foo.png"
) %>

и, конечно, процесс AJAXifying его остается прежним.

0 голосов
/ 19 октября 2017

Чтобы вставить идентификатор в элемент управления для редактирования при отображении изображения редактирования вместо слова Spag, вы можете попробовать это:

@MvcHtmlString.Create(
  Ajax.ActionLink("Spag", "Edit",
    new { id = item.x0101EmployeeID },
    new AjaxOptions() {
      UpdateTargetId = "selectDiv",
      InsertionMode = InsertionMode.Replace,
      HttpMethod = "GET"
    }
  ).ToHtmlString().Replace(
    "Spag",
    "<img src=\"" + Url.Content("../../Images/edit.png") + "\" />"
  )
)
0 голосов
/ 12 февраля 2011

Как насчет чего-то вроде:

<a href='<%= Url.Action(...) %>'><img src='...' /></a>

Не уверен, что есть помощник, который делает это.

Боб

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...