0

Json から取得したデータは、行としてテーブルに追加していました。列の最初のデータはリンク形式である必要があります。そのため、ActionLink を使用しました。しかし、次のエラーが表示されます。現在のコンテキスト」。

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>');
    }   
}

この恐ろしい混乱の代わりに、部分ビューを使用してサーバー上にこのマークアップを作成することをお勧めします。コントローラーアクション(現在はを返す)へのAJAXリクエストを実行した後に、この関数を呼び出していると思いますJsonResult。JsonResult を返す代わりに PartialView を返し、この新しいマークアップを DOM に単純に挿入するように、このコントローラー アクションを変更します。

于 2013-02-20T10:04:47.980 に答える