繁体   English   中英

如何使用jquery在表主体中附加Ajax.ActionLink?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM