保存时弹出页面保持在页面上(彩盒)

时间:2013-02-07 21:04:20

标签: jquery asp.net-mvc popup colorbox

我有一个可以编辑用户的表单。此表单显示为弹出窗口(我正在使用colorbox插件)。点击保存后,我希望它保持在弹出页面而不是关闭弹出窗口,这样我就可以显示“成功保存的信息”等文本。现在,每当我点击保存它关闭弹出窗体并返回上一页。我可以保存弹出窗口吗?任何帮助表示赞赏

查看

  $('.openDialog').colorbox({
                  transition: "elastic",
                  width: "40%", height: "80%"
              });

CONTROLLER

 [HttpPost]
        public ActionResult Edit(UserViewModel vm)
          {
                Save(vm);
                return View(vm);
          }

查看

<input type="submit" value="Save" id="btnSave" class="openDialog"/>

尝试使用ajax表单提交但弹出窗口没有进入控制器,我将不显眼的脚本添加到页面和web配置以及jquery 1.8仍然不好

 @using (Ajax.BeginForm("Edit", "User",
            new AjaxOptions
            {
                HttpMethod = "POST",
                InsertionMode = InsertionMode.Replace
            }))

2 个答案:

答案 0 :(得分:1)

正在发生的事情是您的表单正在提交,最有可能是同一页面,因此页面会“重新加载”,但会提交表单数据。

为了做你想做的事,你必须通过ajax提交表单。这样表单通过javascript提交,您将无法重新加载页面。

在这种情况下,代替您的控制器返回一个视图,它将返回一个状态消息,让您知道提交是否成功(以及更新页面所需的任何其他内容)。

答案 1 :(得分:1)

只需使用colorbox,iframe属性设置为true。最初显示表单时,请添加参数iframe: true

请勿再次点击$.colorbox,因此视图中的输入标记应为:

<input type="submit" value="Save" id="btnSave" />

单击“提交”按钮时,将显示表单提交,结果将在同一颜色框iframe中返回。 Colorbox在内部使用AJAX并创建iframe来为您处理所有这些,没有什么比这更容易了。

要查看此方法,请查看http://www.jacklmoore.com/colorbox/example1/,然后查看名为“外部网页(iFrame)”的iFrame示例,获取Wiki搜索页面,然后提交表单,所有这些都在同一个颜色框中