我有一个可以编辑用户的表单。此表单显示为弹出窗口(我正在使用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
}))
答案 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搜索页面,然后提交表单,所有这些都在同一个颜色框中