一页如何访问弹出窗口的表单数据?

时间:2018-10-16 19:09:11

标签: javascript html asp.net-mvc

场景

我有一个网页,我们称之为 Window#1 ,其中包含人员列表,包括他们的姓名和电子邮件。

此页面上将有一个按钮,用户可以单击该按钮打开一个新窗口( Window#2 )。用户将单击按钮,然后将打开一个新窗口,并且用户将添加其他人员。

完成在窗口#2中添加用户后,他们将单击“保存”。我不想使用POST将表单发送回服务器,而是要使用在窗口2中输入的信息来更新原始页面和模型(窗口1)。

我正在寻找有关如何结合使用MVC框架和/或JavaScript来解决此解决方案的说明。


当前知识

我对ASP.NET MVC和JavaScript还是很陌生,所以我不确定此任务是否可行以及它将带来什么。我尝试为 Window#2 执行window.open,但是 Window#1 无法访问 Window#2 反之亦然。我也考虑过部分视图,但是我不确定该结构如何工作。

我已经尝试研究这种情况,但是我不能完全确定我的术语是正确的,因此我找不到关于该主题的很多信息。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您可以使用传统的MVC Get方法进行 Window#1 的初始加载。您还可以对 Window#2 使用引导程序modal。然后,您将使用JQuery的post方法将新用户发送到MVC控制器中的Post方法。理想情况下,此方法将返回带有更新的用户列表的JSON objec之类的内容。然后,当JQuery的Post方法返回时,您将在DOM中重建列表。

或者,您可以查找类似Knockout.js的内容,而不是使用JQuery的Post方法并手动重建用户列表。淘汰赛非常适合这种情况。

答案 1 :(得分:1)

子窗口可以引用父窗口。然后,子窗口可以使用window.opener引用父窗口的DOM。来自w3schools的示例:

// Open a new window
var myWindow = window.open("", "myWindow", "width=200, height=100");

// Write some text in the new window
myWindow.document.write("<p>This is 'myWindow'</p>");     

// Write some text in the window that created the new window            
myWindow.opener.document.write("<p>This is the source window!</p>");

选择器可用于按照初始问题要求的方式修改父级的DOM。