私は ASP.NET MVC4 アプリケーションを開発しており、jQuery アクションリンクの使用を開始しました。ただし、次の Razor コードを実行すると (チケットの表示アクションリンクをクリックすると)、空の文字列が getElementById() に渡されたことを示す一般的な jQuery エラーが (2 回) 表示されます。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 をクリックしても、ボタンが非表示になりません。