从经典asp发送帖子数据到asp.net页面

时间:2011-03-08 14:13:45

标签: asp.net asp-classic

目标是使用post数据从经典asp中弹出一个asp.net页面,但是,asp.net页面总是将Request.Form变量设置为空并显示RequestType get。

  1. 我已经从asp中删除了所有代码,测试了接收从asp.net页面上的html页面发送的表单变量,这很好用。将相同的表单html复制到asp页面仍然不提供request.form数据和RequestType get

    <html>
    <head></head>
    <body>
        <form method="post" name="form" action="http://localhost:51307">
            <input name="uid" value="1" />
            <input type="submit" name="Submit" />
        </form>
    </body>
    

  2. asp网站正在使用框架,表单是从子框架发送的,我不确定这是不是问题。

    2。 假设这有效,我曾想过在asp中提交一个表单并使用表单的onsubmit事件来弹出页面,该页面将表单变量作为发布数据发送。这是最好的方法吗?

    更新 这里的框架似乎有问题,我已经从框架页面中的表单发布到另一个经典的asp页面,然后从这个页面重定向到asp.net页面。

3 个答案:

答案 0 :(得分:2)

这可能是因为IE浏览器默认禁用“在不同域中导航窗口和框架”,这意味着由于安全原因您无法传递表单数据。

答案 1 :(得分:0)

ASP.NET需要设置某些表单字段(通常为隐藏字段,但HTTP POST显然不知道区别),以便将入站请求视为有效,从而填充相关变量。

如果我记得,你需要设置__EVENTTARGET,__ EVENTARGUMENT和__VIEWSTATE。

然后,您的ASP.NET代码需要能够处理发送的内容,因为默认处理程序将至少在__VIEWSTATE中存在某些内容。因此,您需要覆盖页面中的ViewState处理程序。我以后可以在工作时更新更多信息,因为我知道我之前已经这样做了。

答案 2 :(得分:0)

问题在于重定向。重定向页面时,它会创建一个GET请求而不是POST请求,因此不会有任何表单数据。

您的选择是:

  1. 将表单值附加到查询字符串。
  2. 动态生成与发布的Request.Form集合对应的表单,并在body onload事件期间使用Javascript将其提交到ASP.NET页面。