有没有办法让一张图片充当ajax动作链接?我只能使用文本让它工作。谢谢你的帮忙!
发布于 2009-11-02 03:25:35
来自斯蒂芬·沃尔特,来自他的Contact manger project
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));
}
}
您现在可以键入您的aspx文件:
<%= Ajax.ImageActionLink("../../Content/Delete.png", "Delete", "Delete", new { id = item.Id }, new AjaxOptions { Confirm = "Delete contact?", HttpMethod = "Delete", UpdateTargetId = "divContactList" })%>
发布于 2009-01-16 16:50:44
另一种解决方案是创建自己的扩展方法:
ActionLink<TController>(this HtmlHelper helper, Expression<Action<TController>> action, string linkText, object htmlAttributes, LinkOptions options)
最后一个参数是枚举LinkOptions
[Flags]
public enum LinkOptions
{
PlainContent = 0,
EncodeContent = 1,
}
然后,您可以按如下方式使用它:
Html.ActionLink<Car>(
c => c.Delete(item.ID), "<span class=\"redC\">X</span>",
new { Class = "none left" },
LinkOptions.PlainContent)
我将在我的博客上发布对此解决方案的完整描述:http://fknet.wordpress.com/
发布于 2008-12-04 19:07:12
简而言之,这是不可能的。您的选择是编写自己的扩展方法来拥有一个ImageActionLink,这不是很难做到。或者向actionLink添加一个属性,并用图像标记替换innerhtml。
https://stackoverflow.com/questions/341649
复制相似问题