ユーザーがコントローラーでアクションを呼び出したときに表示される通知を取得しようとしています。これはほとんどのアクションでAjax.ActionLink
正常に機能しますが、アイテムを削除するために を使用しているため、ページが更新されず、javascript 関数が呼び出されないため、通知が表示されません。
私の_Layout
ページには、以下に示す通知システムがあります。
<script type="text/javascript">
//Used to display and close the system notifications
$(document).ready(function notify() {
$("#NotificationBox").show("slide", { direction: "down" }, 1000);
if ($("#NotificationAutoHide").val() == "true") {
$("#NotificationBox").delay(5000).hide("slide", { direction: "down" }, 1000);
}
});
</script>
<div id="NotificationDiv">
@if (TempData["Notification"] != null)
{
@Html.Hidden("NotificationAutoHide", TempData["NotificationAutoHide"])
<div id="NotificationBox" class="@TempData["NotificationCSS"]" style="display: none">
@TempData["Notification"]
</div>
}
</div>
Index
ビュー (レイアウト ページを使用) には、コントローラーでアクションAjax ActionLink
を呼び出すがあり、必要なプロパティも入力されます。Delete
TempData
@Ajax.ActionLink("Delete", "Delete", "MyController",
new { id = item.UserID },
new AjaxOptions {
HttpMethod = "Delete",
OnBegin = "JSONDeleteFile_OnBegin",
OnComplete = "notify"
},
new { @class = "delete-link" })
のオプションnotify
から関数への呼び出しを追加することですべてが機能すると思いましたが、残念ながらこれは機能していないようです。OnComplete
ActionLink
TempData
コントローラーからa を介して返送することを提案する例をいくつか見ましたJsonResult
が、それを既存のコードに結び付ける方法がわかりません。(私のコントローラーは、他の用途のために既に JsonResult オブジェクトを返します)
TempData
Ajax 呼び出しから戻ってきて、通知システムを実行するのを手伝ってくれる人はいますか?
ありがとうございました。