Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在ASP.NET MVC 4视图中将数据从父窗口传递到弹出(子)窗口_Javascript_C#_Jquery_Html_Asp.net Mvc - Fatal编程技术网

Javascript 在ASP.NET MVC 4视图中将数据从父窗口传递到弹出(子)窗口

Javascript 在ASP.NET MVC 4视图中将数据从父窗口传递到弹出(子)窗口,javascript,c#,jquery,html,asp.net-mvc,Javascript,C#,Jquery,Html,Asp.net Mvc,目前,我被要求使用ASP.NET MVC构建一个表单,其要求如下: 该表单具有用于插入姓名、性别和出生日期等数据的文本框 单击“提交”按钮后,将出现一个弹出窗口 父窗口窗体中的所有数据都传输到弹出窗口(子窗口),并与父窗口中的视图完全相同 父窗口和弹出窗口之间的区别在于,必须禁用弹出窗口中的文本框,同时仍保留父窗口中的数据值,并且我必须删除弹出窗口中的“查看”按钮 父窗口和弹出窗口必须只有一个CSHTML文件(例如,不允许使用parent.CSHTML和popup.CSHTML) 以下是一些图片

目前,我被要求使用ASP.NET MVC构建一个表单,其要求如下:

  • 该表单具有用于插入姓名、性别和出生日期等数据的文本框
  • 单击“提交”按钮后,将出现一个弹出窗口
  • 父窗口窗体中的所有数据都传输到弹出窗口(子窗口),并与父窗口中的视图完全相同
  • 父窗口和弹出窗口之间的区别在于,必须禁用弹出窗口中的文本框,同时仍保留父窗口中的数据值,并且我必须删除弹出窗口中的“查看”按钮
  • 父窗口和弹出窗口必须只有一个CSHTML文件(例如,不允许使用parent.CSHTML和popup.CSHTML)
  • 以下是一些图片来说明我想要的:

    预期视图:

    这是我的密码

    //将弹出窗口居中,从https://stackoverflow.com/questions/4068373/center-a-popup-window-on-screen
    功能弹出窗口(url、标题、w、h){
    var dualScreenLeft=window.screenLeft!=未定义?window.screenLeft:screen.left;
    var dualScreenTop=window.screenTop!=未定义?window.screenTop:screen.top;
    var width=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width;
    var height=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height;
    左变量=((宽度/2)-(宽度/2))+dualScreenLeft;
    变量顶部=((高度/2)-(高度/2))+双屏幕顶部;
    var newWindow=window.open(url,标题,'scrollbars=yes,宽度='+w+',高度='+h+',顶部='+top+',左侧='+left);
    //将焦点放在新窗口上
    if(window.focus){
    newWindow.focus();
    }
    }
    
    姓名:
    性别:
    男性
    女性
    出生日期:
    
    您可以在window.open之后添加此代码

    newWindow.onload = function () {
        this.document.getElementById('txtPopup').value = document.getElementById('txt').value;
    }
    

    替换txtPopup,您必须输入弹出窗口的id。

    您使用的是视图模型吗?实际上,您只需要像在主窗体中一样将模型属性绑定到输入元素。弹出窗口仍然是页面DOM的一部分。请查看引导模式弹出窗口。@Crowcoder您好,谢谢您的建议。我必须让你知道,我还是个新手,对ASP.NETMVC非常缺乏经验,不,我还没有建立一个模型,因为我认为在使用Javascript时进行调整已经足够了。我一定会查一查你的建议。再次感谢!嗨,我只是复制了一份,奇怪的是代码现在不起作用了。您确定
    newWindow.onload
    运行吗?我试图调试它,但它立即跳过了
    this.document.getElementById('txtPopup').value=document.getElementById('txt').value部分。嗨,很抱歉回答了这么长时间。你解决问题了吗?