我想在ASP.NET MVC 3中创建一个链接(在Ajax中),其中图像为背景而没有文本。我正在使用这种手动创建ajax链接的方法:
<a href="@Url.Action("Like", new { controller = "Article", like = 1, id = Model.Item1.ID })" data-ajax-update="#result" data-ajax-mode="replace" data-ajax="true"><div class="icon icon_like"></div></a>
div标签调用将导入图像的CSS“icon icon_like”类。
我的问题如下: 没有别的方法(也许是助手)能够轻松地做到这一点吗?
更新 gdoron将我重定向到一个很好的链接,但它不是我想要的(没有Ajax支持)。对我来说,第一个torm的答案更好,我只做了一些改动以使其普及:
首先在帮助程序中它首先支持routeValues并更改要更新的部分
@helper AjaxImageLink(string action, Object routeValues, string icon_name, string sectionToUpdate = "#result"){
<a href="@Url.Action(action, @routeValues)" data-ajax-update="@sectionToUpdate" data-ajax-mode="replace" data-ajax="true"><div class="icon @icon_name"></div></a>
}
关于我正在使用的帮助器的使用问题:
@AjaxImageLink("Like", new { controller = "Article", like = 1, id = Model.Item1.ID }, "icon_like")
它可以正常工作。
答案 0 :(得分:0)
您可以看到this问题。
在互联网上还有很多其他的例子只是google“asp.net mvc image action link”
答案 1 :(得分:0)
为了符合DRY原则,您可以轻松地将链接结构包装在内联帮助器中,如:
@helper AjaxLink(string action, string controller, string icon_name){
<a href="@Url.Action(action, new { controller = controller, like = 1, id = Model.Item1.ID })" data-ajax-update="#result" data-ajax-mode="replace" data-ajax="true"><div class="icon @icon_name"></div></a>
}
其他方式是将ajax部分转换为不引人注目的可重用jquery绑定:
<a href="@Url.Action("Like", new { controller = "Article", like = 1, id = Model.Item1.ID })" class="ajaxLink" ><div class="icon icon_like"></div></a>
$('.ajaxLink').click(function (e) {
e.preventDefault();
$("#result").load($(this).attr("href");
});
答案 2 :(得分:0)
在html.Raw中使用ajax.actionlink并用图像标记替换ajax.actionlink文本。 简单的一行代码。
@ Html.Raw(@ Ajax.ActionLink(“[replacetext]”,“Action”,“Controller”,new AjaxOptions {HttpMethod =“Post”})。ToHtmlString()。Replace(“[replacetext]”, “”))