模态javascript:提交表单时会打开新窗口

时间:2012-02-16 19:04:40

标签: javascript asp.net-mvc

我在asp.net mvc 3中有一个视图,我需要在一个javascript模式中打开它。我的观点有一个简单的形式,如下:

@using(Html.BeginForm("Save", "ControllerName"))
{
  @Html.TextBoxFor(model => model.Text)
  @Html.ValidationMessageFor(model => model.Text)

  <button type="submit">Save</button>
}

我像这样调用showModalDialog:

  window.showModalDialog('@Url.Action("Show", "ControllerName")');

因此,当我按下保存按钮而不填写输入时,例如,会打开一个新窗口,显示带有验证错误的视图。为什么会这样?我可以在不打开新窗口的情况下提交表格吗? 感谢。

1 个答案:

答案 0 :(得分:1)

是的,我在IE中使用showModalDialog时看到了同样的事情。

我的解决方案是打开一个包含所需页面的框架(框架集或iframe)的文档。框架可以回发而无需打开新窗口。

我建议创建一个“对话框”页面/视图,接受真实的页面/视图作为参数。在de code中,将帧的src设置为该页面/视图。

作为替代方案,您可能希望查看jQuery UI中的模态内容。它创造了一种模态的幻觉,而不是一个真正的窗口。