从Json获取的数据我曾经以行的形式附加到表中。列的第一个数据需要以链接格式出现。所以我使用了ActionLink。但是我得到以下错误"名称&# 39; 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>');
}
}
答案 0 :(得分: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。