Asp.net mvc 2 如何将图像制作为Ajax操作链接?

Asp.net mvc 2 如何将图像制作为Ajax操作链接?,asp.net-mvc-2,Asp.net Mvc 2,如何将图像制作为Ajax操作链接?您可以这样做: <a href="<%: Url.Action("someaction", "somecontroller") %>" id="mylink"> <img src="<%: Url.Content("~/images/foo.png") %>" alt="foo" /> </a> 如果要避免视图中出现标记汤,可以编写自定义帮助程序: public static class Ht

如何将图像制作为Ajax操作链接?

您可以这样做:

<a href="<%: Url.Action("someaction", "somecontroller") %>" id="mylink">
    <img src="<%: Url.Content("~/images/foo.png") %>" alt="foo" />
</a>
如果要避免视图中出现标记汤,可以编写自定义帮助程序:

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"
) %>


当然,Ajaxing的过程保持不变。

类似这样的东西呢:

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

不确定是否有帮助者执行此操作


Bob

要在显示编辑图像而不是Spag一词时将id推送到编辑控件,可以尝试以下操作:

@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") + "\" />"
  )
)
@MvcHtmlString.Create(
ActionLink(“Spag”、“编辑”,
新的{id=item.x0101EmployeeID},
新的AjaxOptions(){
UpdateTargetId=“selectDiv”,
InsertionMode=InsertionMode.Replace,
HttpMethod=“获取”
}
).ToHtmlString()。替换(
“Spag”,
""
)
)

这在Darin中非常有效,但我仍然有一个问题。我有多个链接作为列表“
    ”只有第一个链接是Ajax链接,其他是常规链接
    @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") + "\" />"
      )
    )