我在Index视图中非常好地使用jQuery NotifyBar来显示业务规则错误,例如用户单击无法删除的项目的删除链接。但是,如果用户添加新项目,则会将其重定向到“创建”视图。如果成功创建了新项目,则“创建”操作将重定向回“索引”视图。
我的困惑是我需要(已被告知)在上述场景中显示成功通知。以前,要在保留同一视图的同时请求通知,我使用return JavaScript()
作为操作结果,但当我使用return RedirectAction()
作为操作结果时,我无处可放{ {1}}。
我看到的方式是我需要:
a)在return JavaScript()
中包含告诉“目的地”视图显示通知的信息,或
b)在“来源”视图中调用通知,而不是return RedirectAction()
,并告诉它在关闭/关闭时,执行重定向到“目标”视图。
我不知道从哪里开始决定这两个操作,也不知道如何开始研究如何实现这两个操作。所有建议和建议指针都将受到最高的赞赏。
答案 0 :(得分:1)
我最喜欢选项A.您可以轻松地在返回URL中包含查询字符串值,并在返回页面上等待查找查询字符串值的javascript函数...如果存在,则显示通知栏。
在控制器上提交操作:
public ActionResult Submit(ValueModel valueModel) {
//TODO: Save model to repository
//include something in the route values to act as a querystring flag.
//here, I use "success".
return RedirectToAction("Action", "Controller", new { success = 1 });
}
在控制器上查看操作:
public ViewResult Index() {
//TODO: do stuff
return View();
}
的Index.aspx:
...
<div class='notificationBar'></div>
<script type="text/javascript">
$(document).ready(function() {
if(window.location.search.substring(1).indexOf("success")) {
//set notification bar here
}
});
</script>
...