我一直在尝试获取通知以显示用户何时在我的控制器中调用操作。这适用于我的大多数操作,但是我使用 anAjax.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
通过我的控制器发送回来JsonResult
,但是我不确定如何将其绑定到我现有的代码中。(我的控制器已经返回一个 JsonResult 对象用于其他用途)
谁能帮我TempData
从 Ajax 调用中恢复过来并执行我的通知系统?
非常感谢你花时间陪伴。