是否可以将图标标记添加到ajax.actionlink?
@Ajax.ActionLink("Subscribe", "Subscribe", "UserManagement", new { id = ViewBag.UserId },
new AjaxOptions
{
UpdateTargetId = "video-userinfo-subscribe",
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace
}, new { id = "video-userinfo-subscribe" })
答案 0 :(得分:3)
简短的回答,你不能,或者至少,它是不可取的。正如您在@ Shyju的回答中所详述的那样,将一个类应用于a
标签会产生意想不到的副作用。 Font Awesome旨在应用于空内联元素,即:
<i class="fa fa-foo"></i>
答案较长的答案是不使用Html.ActionLink
或Ajax.ActionLink
。它只是您需要简单链接时的快捷方式,简单就是关键字。只要您想要添加图标等操作,您就会离开该区域。而是做类似的事情:
<a id="video-userinfo-subscribe" href="@Url.Action("Subscribe", "UserManagement", new { id = ViewBag.UserId })">
<i class="fa fa-foo"></i>
Subscribe
</a>
但是,你的AJAX怎么样?好吧,这又是另一个原因,还有很多理由不使用Ajax.*
助手系列。他们愚蠢地不灵活和脆弱。使用自己的JavaScript比依赖Web Form时代的保留更好。
$('#video-userinfo-subscribe').on('click', function (e) {
e.preventDefault();
var url = $(this).attr('href');
$.post(url, function (html) {
$('#video-userinfo-subscribe').replaceWith(html);
});
});
但要小心这种事情。您正在替换您要绑定的相同元素,因此您应该:
绑定到委托(即a
标记的父级):
$('#parentElement').on('click', '#video-userinfo-subscribe', function (e) {
替换其他元素或仅替换a
标记的内容:
$('#video-userinfo-subscribe').html(html);
答案 1 :(得分:1)
是的,这可能是一招。试试这样:
<p-column *ngFor="let col of getColumns()" [field]="col.name" [header]="col.header" [sortable]="true">
<ng-template let-data="rowData" pTemplate="body">
{{format(data,col)}}
</ng-template>
</p-column>
只是,替换你自己的变量。
答案 2 :(得分:1)
我知道这一定很老,但这可能对其他人有帮助
<div class="col-2 text-center">
<a data-ajax="true"
data-ajax-loading="#loading"
data-ajax-mode="replace"
data-ajax-update="#editBid"
href="/Bids/_EditBid/?bidId=@Model.BidId"
class="btn btn-sample"><i class="fas fa-edit fa-lg"></i></a>
答案 3 :(得分:0)
我喜欢Erik VzGz的回答。它简单易行。但是,我不得不将其更改为基于类而不是id,因为我想在每行都有链接的表中使用它。
@Ajax.ActionLink("YourText", "YourAction", "YourController", null, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "YourDivTargetToUpdate" }, new { @class = "btn btn-success myActionLink" })
<script>
$('.myActionLink').prepend("<i class='fa fa-plus'></i> ");
</script>
此外,如果您不想在按钮上输入任何文本,请将“ YourText”更改为“”。您必须至少有一个字符,否则会出错。