0

从 Json 获得的数据我曾经作为行附加到表中。列的第一个数据需要以链接格式出现。所以我使用 ActionLink 。但我收到以下错误,因为“名称 'Transaction_No' 中不存在当前背景”。

function CreateGrid(result) {

    $.ajaxSetup({
        cache: false
    });


    for (i = 0; i < result.data.length; i++) {
        debugger;
        var chk_row = true;
        $('#tbl_RoleMenu tbody').empty().append('<tr id="tr-' + i + '"></tr>');
         String Transaction_No = result.data[i].Loan.toString();

        $('#tr-' + i).append('<td id="tdLoan-' + i + '"> @Html.ActionLink(Transaction_No, "Create", "Portfolio", null, new { @class = "openDialog", data_dialog_id = "emailDialog" }) </td>');
        $('#tr-' + i).append('<td id="tdLoan-1' + i + '">' + result.data[i].Loan + '</td>');

    }   


}
4

1 回答 1

0

您似乎完全将服务器端代码与客户端 javascript 混合在一起。尝试修复这个烂摊子:

function CreateGrid(result) {
    $.ajaxSetup({
        cache: false
    });

    for (i = 0; i < result.data.length; i++) {
        debugger;
        var chk_row = true;
        $('#tbl_RoleMenu tbody').empty().append('<tr id="tr-' + i + '"></tr>');
        var transactionNumber = result.data[i].Loan;

        $('#tr-' + i).append('<td id="tdLoan-' + i + '"><a href="@Url.Action("Create", "Portfolio")" class="openDialog" data-dialog-id="emailDialog">' + transactionNumber + '</a></td>');
        $('#tr-' + i).append('<td id="tdLoan-1' + i + '">' + result.data[i].Loan + '</td>');
    }   
}

作为这种可怕混乱的替代方案,我建议您使用局部视图在服务器上创建此标记。我猜您是在对控制器操作(当前返回 a JsonResult)执行 AJAX 请求后调用此函数。修改此控制器操作,以便返回一个 PartialView 而不是返回 JsonResult,然后简单地将这个新标记注入到您的 DOM 中。

于 2013-02-20T10:04:47.980 回答