将jQuery NotifyBar要求传递给RedirectToAction中的下一个视图

时间:2010-07-14 17:19:28

标签: asp.net asp.net-mvc

我在Index视图中非常好地使用jQuery NotifyBar来显示业务规则错误,例如用户单击无法删除的项目的删除链接。但是,如果用户添加新项目,则会将其重定向到“创建”视图。如果成功创建了新项目,则“创建”操作将重定向回“索引”视图。

我的困惑是我需要(已被告知)在上述场景中显示成功通知。以前,要在保留同一视图的同时请求通知,我使用return JavaScript()作为操作结果,但当我使用return RedirectAction()作为操作结果时,我无处可放{ {1}}。

我看到的方式是我需要: a)在return JavaScript()中包含告诉“目的地”视图显示通知的信息,或 b)在“来源”视图中调用通知,而不是return RedirectAction(),并告诉它在关闭/关闭时,执行重定向到“目标”视图。

我不知道从哪里开始决定这两个操作,也不知道如何开始研究如何实现这两个操作。所有建议和建议指针都将受到最高的赞赏。

1 个答案:

答案 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>

...