我正在开发一个 ASP.NET MVC4 应用程序并开始使用 jQuery actionlinks。但是,当我运行以下 Razor 代码(并单击查看工单操作链接)时,我收到一个通用 jQuery 错误(两次),表示将一个空字符串传递给 getElementById()。我不知道这个错误发生在哪里,因为 firefox 只是链接到 jQuery 代码。这是我的 Razor 代码:(我知道 js 函数 show 和 hideticket 是空的,但这是为了简化代码):
<script>
function ShowTicket(id) {
$("#viewTicketButton" + id).hide();
$("#hideTicketButton" + id).show();
$("#viewTicket").show();
}
function HideTicket(id) {
$("#viewTicketButton" + id).show();
$("#hideTicketButton" + id).hide();
$("#viewTicket").hide();
}
</script>
<h3>Your tickets</h3>
<table border="1">
<tr>
<td>Title:</td>
<td>Urgency:</td>
<td>Status:</td>
</tr>
@foreach (SupportTicketViewData t in Model.supportTicketViewDataList)
{
<tr>
<td>@t.title</td>
<td>@t.text</td>
<td>@t.status</td>
<td>@Ajax.ActionLink("View Ticket", "ViewTicket", new { id = t.id },
new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "viewTicket",
OnComplete = "ShowTicket(" + t.id +");"
}, new { id = "viewTicket" + t.id })</td>
<td><button id="@Html.Raw("HideTicket" + t.id)" onclick="HideTicket(@t.id);">Hide Ticket</button></td>
</tr>
}
</table>
<div id="viewTicket">
</div>
我也从 GET 请求中得到了一个结果,因为它被插入到了 div 元素中,但是在 Firefox 中调试时出现了 2 个错误。
此外,当我单击 viewTicketButton 时,该按钮不会像应有的那样隐藏。