Как я могу прикрепить значение из Json Data к Actionlink в mvc4

Данные, полученные из 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>');

    }   


}

person user2090114    schedule 20.02.2013    source источник
comment
заключите Transaction_No в двойные кавычки, например Transaction_No   -  person Dakait    schedule 20.02.2013
comment
@dakait: если мы поместим двойные кавычки, это просто напечатает текст, а не значение. Я хочу получить это значение (result.data[i].Loan.toString()) вместо того, чтобы отображать только номер транзакции, и мне нужно прикрепить к нему ссылку действия.   -  person user2090114    schedule 20.02.2013


Ответы (1)


Похоже, вы полностью смешиваете код на стороне сервера с 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.

person Darin Dimitrov    schedule 20.02.2013