[英]How to append Ajax.ActionLink in the table body using jquery?
这是我的ajax代码:
<script>
$(document).ready(function () {
$("#BtnSearch").click(function () {
var SearchBy = $("#SearchBy").val();
var SearchValue = $("#Search").val();
var SetData = $("#DataSearching");
SetData.html("");
debugger;
$.ajax({
type: "POST",
contentType: "html",
url: "/SelectDeal/GetSearchingData?SearchBy=" + SearchBy + "&SearchValue=" + SearchValue,
success: function (result) {
debugger;
if (result.length == 0) {
SetData.append('<tr style="color:red"><td colspan="3">No Match Data</td></tr>');
}
else {
$.each(result, function (i, item) {
//var clientName = item.
var DealDateString = item.Deal_Date;
var valDealDate = new Date(parseInt(DealDateString.replace(/(^.*\()|([+-].*$)/g, '')));
var finalDealDate = valDealDate.getMonth() + 1 + "/" + valDealDate.getDate() + "/" + valDealDate.getFullYear();
var ValidityDateString = item.Validity_Date;
var valValidityDate = new Date(parseInt(ValidityDateString.replace(/(^.*\()|([+-].*$)/g, '')));
var finalValidityDate = valValidityDate.getMonth() + 1 + "/" + valValidityDate.getDate() + "/" + valValidityDate.getFullYear();
var val = "<tr>" +
"<td>" + finalDealDate + "</td>" +
"<td>" + item.Total_Amount_Remaining + "</td>" +
"<td>" + item.Dealer_Name + "</td>" +
"<td>" + finalValidityDate + "</td>" +
"<td>" + item.Location + "</td>" +
"<td>" + item.Deal_Amount + "</td>" +
"<td>" + @Ajax.ActionLink("Recieve payment", "myAction", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "dialog_window_id",
}) + "</td>" +
"</tr>";
SetData.append(val);
});
}
},
error: function (data) {
alert(data);
}
});
});
});
</script>
我想在实际上是<tbody>
元素的setData变量中附加Ajax.ActionLink。 它不起作用。 但是,如果我从上面的代码中删除了@ ajax.actionLink,它可以很好地工作。 有什么办法可以解决这个问题?
如果查看页面的查看源,可以看到当前代码将生成这样的代码
"<td>" + <a data-ajax="true" data-ajax-method="GET"
这是无效的,因为看起来我们试图将字符串"<td>"
到像<a
这样的变量开头。 ,因此导致了问题。
您不需要任何字符串连接。 在td内使用C#代码渲染的输出(调用Ajax.ActionLink
方法)。
Ajax.ActionLink
方法将呈现标记,如下所示,其中属性值用双引号引起来。 因此,您应该对字符串串联运算符使用单引号(对val
变量)
<a data-ajax="true" data-ajax-method="GET"
这应该工作。
'<td>@Ajax.ActionLink("Recieve payment", "Ajax.ActionLink", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "dialog_window_id",
}) </td>' +
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.