Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.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
C# 将值从opener传递到弹出窗口,并在服务器端而不是客户端处理它。不能使用一个GET_C#_.net_Javascript_Html - Fatal编程技术网

C# 将值从opener传递到弹出窗口,并在服务器端而不是客户端处理它。不能使用一个GET

C# 将值从opener传递到弹出窗口,并在服务器端而不是客户端处理它。不能使用一个GET,c#,.net,javascript,html,C#,.net,Javascript,Html,我有一个aspx网页(opener),它会打开一个弹出窗口 在弹出窗口中,我需要检索一个隐藏字段的值,该字段存在于opener页面中 因此,这一切都是直接使用Javascript实现的 然而,问题是,我需要在加载弹出页面之前在服务器端处理隐藏字段的值 (基本上,隐藏字段包含需要在服务器端反序列化的XML以及用于构建弹出页面DOM的数据) 那么,我如何在打开程序的隐藏字段中传递数据,以便在弹出窗口中处理服务器端 数据太长,无法作为GET传递。i、 e.在弹出页面的查询字符串中 这里还有什么其他选择

我有一个aspx网页(opener),它会打开一个弹出窗口

在弹出窗口中,我需要检索一个隐藏字段的值,该字段存在于opener页面中

因此,这一切都是直接使用Javascript实现的

然而,问题是,我需要在加载弹出页面之前在服务器端处理隐藏字段的值

(基本上,隐藏字段包含需要在服务器端反序列化的XML以及用于构建弹出页面DOM的数据)

那么,我如何在打开程序的隐藏字段中传递数据,以便在弹出窗口中处理服务器端

数据太长,无法作为GET传递。i、 e.在弹出页面的查询字符串中

这里还有什么其他选择

  • 在弹出窗口中使用Javascript检索它,然后进行回发以重新加载页面(非常难看)
  • 在打开弹出窗口时以某种方式发布数据?这可能吗?我还可以通过查询字符串传递其他信息吗
  • 还有其他想法吗

  • 对于这类问题,我通常的解决方案是使用XmlHTTPRequest将XML发布到服务器,服务器只需根据某个唯一ID(如GUID)存储XML,并从服务器返回ID


    然后,您为弹出窗口提供的URL只需要携带此ID,而不需要携带整个XML。现在,当URL另一端的服务器代码需要XML时,它可以使用ID查找XML(可能同时从其临时存储中删除),并可以处理XML,就好像请求中已发布一样。

    编辑:抱歉,我意识到这不能回答您的问题。我读得不够清楚,也没有意识到您需要在服务器端执行此操作。我想如果你想走这条路,你可以用AJAX来构建你的页面

    父页面:

     foo = 'bar'; 
     child = open ("popup.html");
     // you can now access the new windows functions with child.varname and child.function()
    
    子页面:

     alert(window.opener.foo);
    
    应该提醒富。因此,您可以:

     somevar = window.opener.document.getElementById('id').value;
    
    获取字段的值。

    有这样一个表单

    <form method="POST" action="action.php" onsubmit="open_popup(this);">
        <input name="really-big-field" type="hidden">
    </form>
    
    function open_popup(form)
    {
        window.open('action.php', 'actionpopup','width=400,height=300');
        form.target = 'actionpopup';
    }
    
  • window.open()将打开您想要的弹出窗口

  • 将表单的目标设置为打开的弹出窗口将确保表单将发布到该弹出窗口

  • 由于生成了POST,因此可以发送比使用GET发送的数据更大的数据

  • 您可以在action.php(或ASP.Net/VB文件)中处理服务器端的数据


  • 是的,正如问题中所述,我意识到我可以用Javascript实现这一点。问题是,我不希望在客户端处理数据,而是在服务器端处理数据