在ASP中,将请求变量保存到帧的最佳方法是什么

时间:2011-09-27 15:39:08

标签: javascript jquery html asp-classic frames

我有一个主页面,其框架的属性src设置为“SomeOther.asp”。

由于我有一些相当大的请求变量,我想将我的请求变量从当前页面保存到SomeOther.asp框架中。有没有办法将我的请求变量传输到我的框架页面?原因是我的SomeOther.asp中的b / c我不能真正使用所有变量的查询字符串b / c一个是一堆1,2,3,4,5,..... 4000其中更多表示ID,我宁愿不使用cookie,但我可以使用请求对象,或者可能使用会话变量。

如果我不能使用请求属性,我打算使用会话变量,只在查询字符串中传输此变量的名称,即... <frame src="SomeOther.asp?mysess=uniquesessionname ...

这是我的工作流页面1表单已加载,提交按钮点击,从提交到post2的数据到page2。 Page2自动使用查询字符串数据调用page3。第3页上有框架。我可以从第3页的page1访问请求输入项,但不能在第3页的框架上访问。这就是我想要做的。

感谢。

6 个答案:

答案 0 :(得分:2)

您可以尝试使用与iframe的src相同页面上的post方法。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
    <form action="v.asp" method="post">
    <iframe src="v.asp"></iframe>
    <input type="text"  name="txt1" value="123" />
    <input type="submit" value="click" />
  </form>
</body>
</html>

答案 1 :(得分:1)

您可以使用JavaScript将查询字符串传输到iframe:

document.frames[0].src="SomeOther.asp?" + document.location.pathname

答案 2 :(得分:1)

您可能想澄清请求变量的含义。查询字符串中的变量通常被视为请求变量,但是你说你不能使用查询字符串...你的意思是你想要像表单提交那样做吗?这些变量来自哪里?它们是在您的asp页面中计算的,还是它们以某种方式传递到您的父页面的外部参数?

您可以将表单提交的目标设置为iframe,在这种情况下,表单的响应将显示在框架中。

您可以像其他人一样建议将变量放在查询字符串上,但您建议可能会过长。

如果他们在服务器上启动,那么将它们存储在服务器上是明智的。如果在会话中,您可以将每个变量存储在等效的会话变量中。如果用户打开了多个页面副本,这将导致问题。

您可以按照建议执行操作,并将所有变量存储在一个唯一的会话密钥下,然后将其作为单个查询字符串参数传递。

最后,您可以将状态存储到持久性介质(如数据库)中,并使用帧查询字符串中的id来检索它。这可能比在会话中存储更好,具体取决于您存储的大小,流量等等。一般来说,由于您可能开始吃多少内存,因此在会话中存储任何太大的东西都是一个非常糟糕的主意。如果你不小心。

如果没有更多细节,很难说什么对你的场景最有利,但希望上面的内容可以为你提供一些关于你可以用它的想法。

答案 3 :(得分:1)

你是否绝对有必要使用框架?如果只是为了显示一个只对登录用户可见的菜单或特殊区域,你应该考虑使用CSS来创建“框架”效果,然后你不需要将你的请求变量传递给你的框架或必须一定要弄乱围绕会议只是为了将信息从一个传递到另一个。

以下是一些例子:
http://fu2k.org/alex/css/frames/scalablefixed
http://www.webpelican.com/web-tutorials/css-frames-tutorial/

如果框架是必要的,那么我建议你去参加会议。

答案 4 :(得分:1)

如果您想在iframe中使用提交的数据进行操作,为什么不使用form标记的“target”属性指向iframe?

<form action="ProcessPage.asp" target="iframeName">
     ....all your inputs...
</form>
<iframe name="iframeName"></iframe>

答案 5 :(得分:0)

据我所知,可以在frame元素中绑定查询字符串变量:

<frame src="SomeOther.asp?someid=5&mode=2"/>

AFAIK,HTML会将所有网址视为相同,因此框架可以包含与普通网页网址相同的查询字符串数据。希望这会有所帮助。