美好的一天
我下面的javascript
函数填充了proposalwaitingapproval
,它可以很好地加载所有内容,但是问题是当我单击编辑按钮时:
cell += '<a href="@Url.Action("Create", "Home", new { id = proposal.Id })" class="btn btn-link" style="text-decoration:none">';
cell += '<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit';
cell += '</a>';
当我单击“编辑”按钮时,不会从控制器调用方法,这是url结果:http://localhost:61759/@Url.Action(
function PopulateProposalWaitinApprovalTable() {
var table = $('#tblProposalsAwaitingApproval');
abp.ui.setBusy(table);
_proposalService.getWaitingApprovalProposals(true).done(function (data) {
var receivedData = data;
var htmlString = '';
for (var element in data.items) {
if (data.items.hasOwnProperty(element)) {
var recievedData = data.items[element];
var row = '<tr>';
var cell = '<td style="vertical-align: middle">'+recievedData.id+'</td>';
cell += '<td style="vertical-align: middle">' + recievedData.application +'</td>';
cell += '<td style="vertical-align: middle">' + recievedData.dealName + '</td>';
cell += '<td style="vertical-align: middle">' + recievedData.dealCompanyName + '</td>';
cell += '<td style="vertical-align: middle">' + recievedData.contactFullName + '</td>';
cell += '<td style="vertical-align: middle">' + recievedData.creationDate + '</td>';
cell += '<td style="vertical-align: middle">' + recievedData.lastUpdatedDate + '</td>';
cell += '<td>';
if (!recievedData.isApproved)
{
cell += '<a href="@Url.Action("Create", "Home", new { id = recievedData.id })" class="btn btn-link" style="text-decoration:none">';
cell += '<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit';
cell += '</a>';
}
else
{
//@*<button type="button" class="btn btn-link" id="btnCreateRevision" data-toggle="modal" data-target="#RevisionModal" data-content=@proposal.Id><i class="fa fa-clone" aria-hidden="true"></i> @L("CreateRevision")</button>*@
}
cell += '</td>';
row += cell + '</tr>';
htmlString += row;
}
$('#tblProposalsAwaitingApproval > tbody').append(htmlString);
}
}).always(function () {
abp.ui.clearBusy(table);
});
}
答案 0 :(得分:0)
应该是这样。问题是它在客户端执行
cell += '<a href="Home/Create/id=recievedData.id" class="btn btn-link" style="text-
decoration:none">';
cell += '<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit';
cell += '</a>';
答案 1 :(得分:0)
您不能在Javascript中使用Razor语法。请记住,Razor只是一种输出HTML的好方法,并且在呈现页面之前由MVC解决。呈现页面后,JavaScript便会运行,因此您在该点注入到页面中的任何Razor都不会得到处理。
您在这里有两个选择。像Chaminda所示那样硬编码Javascript中的URL,或者在页面上有一个隐藏元素,您可以像这样读取值:
@Html.Hidden("homeUrl", Url.Action("Create", "Home"))
然后,您可以使用Javascript从页面中读取值:
cell += '<a href="' + $('#homeUrl').val() + '?id=' + recievedData.id + '" class="btn btn-link" style="text-decoration:none">';
cell += '<i class="fa fa-pencil-square-o" aria-hidden="true"></i> Edit';
cell += '</a>';