'这是一个页面 传值strArgs
 Dim Image As New System.Web.UI.WebControls.Image
  Image.ImageUrl = "ZedGraph.aspx?Args=" & strArgs
  PanelZed.Controls.Add(Image)另外一个页面怎么接受这个Args参数的值?
'下面的方法接收会提示 请求在此上下文中不可用 
 '解析传过来的值
    Dim arrArgs() As String = Request("Args").Split(",")

解决方案 »

  1.   

    拿个例子吧,比如A页面叫A.asp B页面叫B.asp,在A页面的链接处写<A href="B.asp?ID=1"></A>然后在B页面里,查询数据库语句写 sql="select * from News where ID="&Request.QueryString("ID")
      

  2.   

    不懂asp,里面没有Request.QueryString["Args"]吗
      

  3.   


    我感觉我的问题简单 你的例子比我的问题还要复杂... 我的代码写出来了ZedGraph.aspx 这个页面时ZedGraph控件生成的一张图,我只是想给这个页面传递一个参数 然后在ZedGraph.aspx页面接收,仅此而已。
      

  4.   


    是的  没有Request.QueryString 
      

  5.   

    string Args=request.QueryString("Args");
      

  6.   

    .Split(",") 改成。ToString()试试
      

  7.   

     Dim Args As String = Request.QueryString("Args").ToString这样接收参数 也会报错  请求在此上下文中不可用
      

  8.   

    如果通过url传递过来了 那就用request("strArgs")来获取值 其他方式可以通过session传递到这个页面
      

  9.   

    在Web 应用程序中,页面之间交换数据(传值)是一种基
    本应用,它的实现效率对程序性能有直接的影响。传统的解
    决方案是通过Get 或Post 方法来实现的。但在ASP.NET 中,
    这2 种方法的使用发生了变化。因为ASP.NET 使用了基于事
    件驱动的编程模型,页面采用了PostBack 技术(发回给自己),
    一些传统的方法必须做出一定的调整才能适应它。同时,
    ASP.NET 以其优秀的架构提供了更多可用于页面间传值的方
    法。这些方法各具特色,比较充分地适应了各种情况下页面
    间传值的需求。
    1 页面重定向
    页面间的传值方法总是与一定的页面重定向方法相联
    系,而且有些传值方法只能用某种重定向方法才能实现。
    ASP.NET 中有多种页面重定向的方法,这里仅介绍下文中用
    到(也是最常用的)的2 种。
    (1)Redirect 方法
    将客户端重定向到新的页面,只是简单地终止当前页面,
    并转入新的页面开始执行,对转入的页面无任何限制。
    (2)Transfer 方法
    终止当前页的执行,并为当前请求开始执行新的页面。
    把执行流程从当前页面转到同一服务器中的另一页面,但是
    新的页面仍然使用当前页面创建的应答流。
    这两种方法的主要区别是:(1)Redirect 方法可以实现任
    意网页间的重定向,而Transfer 方法只能实现同一服务器中
    ASPX 页面间的重定向。(2)Redirect 方法不会保留当前页面
    的表单(Form)数据和查询字符串(QueryString),而Transfer 方
    法则可以保留这些数据。
    2 传值方法
    为了简化问题的讨论,本文作如下约定:示例基于C#
    语言;源页和目标页已经导入了必要的命名空间;源页面设
    为Src.aspx,值的传送点设在控件Button1 的Click 事件中,
    待传送的数据保存在控件TextBox1 中; 目标页面设为
    Dst.aspx,值的接收点设在该页面的Page_Load 事件中,接收
    的数据显示在控件Label1 中;不深入讨论与之相关的编程问
    题,所有示例仅给出基本实现方法,所有代码在Visual Studio
    2005 中调试通过。
    2.1 QueryString 的使用
    最简单最常用的传值方法,与传统的 Get 方法相对应,
    使用变化相对较小。数据直接在URL 中以明文传递,对于用
    户来说是可见的,但是可以加密。
    此方法的优点是简单、方便,缺点是能传递的数据量少,
    而且不能传递对象。示例如下:
    Src.aspx:
    Private void Button1_Click(object sender, EventArgs e)
    { …
    //将待传送的数据保存到URL 中
    strUrl=“Dst.aspx?id=”+TextBox1.Text;
    //重定向到目标页面
    Response.Redirect(strUrl);
    }
    Dst.aspx:
    private void Page_Load(object sender, EventArgs e)
    { …
    //接收数据并显示在Label1 控件中
    Label1.Text = Request.QueryString[“id”];
    作者简介:范明虎(1974-),男,博士研究生,主研方向:网络信息
    系统;樊红,教授、博士
    收稿日期:2009-06-17 E-mail:[email protected]
    —89—
    }
    因为方法的描述完全相同,为节省篇幅,下文示例只给
    出数据传送和接收的实现代码。
    2.2 Form 的使用
    通过表单中的控件来传递数据,与传统的Post 方法相对
    应,使用变化相对较大。
    该方法的优点是可以传递大量数据,并且可以访问源页
    面控件中的数据;缺点是操作比较复杂,生命周期仅限于当
    前请求。示例如下:
    Src.aspx:
    public string id{get{return TextBox1.Text;}} //定义公共属性
    Server.Transfer("Dst.aspx"); //重定向到目标页面
    Dst.aspx:
    //HTML 中引入PreviousPageType 指令
    <%@ PreviousPageType VirtualPath="~/Src.aspx" %>
    //代码中获取Form 数据
    Label1.Text=PreviousPage.id;
    该方法的实现灵活多样。文献[1]中给出了使用Transfer
    进行传值的方法,其他一些文献中给出了使用隐藏域或者隐
    藏字段进行传值的方法,笔者认为其实都是使用Form 进行
    传值。因为传值过程中使用的数据载体是Form,而不是其他
    东西。
    2.3 Session 的使用
    Sessionss 对象为当前用户会话提供信息。通过其属性可
    以方便地设置和检索ASP.NET 会话状态变量,这些变量的值
    在会话持续期间保留不变,并且可以被同一个会话中的所有
    页面访问,这就为页面传值提供了途径和方便。
    该 方 法 的 特点是[2] : (1)用户数据存储在服务器端;
    (2)ASP.NET 中的Session 对象也可以不依赖Cookie 而正常工
    作;(3)可以直接存储对象,且无大小限制;(4)有效期与用户
    的活动时间有关,具体为用户活动时间+自定义延迟时间。该
    方法的缺点是:由于Web 应用程序对每个用户都会生成
    Session 变量,因此它会随着用户数量的增多而加重服务器的
    负担。
    如果数据量比较小,Sessionss 对象是保存只需要在当前
    对话中保持的特定数据的极好位置。实例代码如下:
    Src.aspx:
    Session[“id”]=TextBox1.Text;
    Response.Redirect(“Dst.aspx”);
    Dst.aspx:
    Label1.Text=Session[“userid”].ToString();
    Session.Remove(“id”); //清除Session 变量
    2.4 Application 的使用
    Application 对象提供了对应用程序状态的访问。与
    Session 对象相比,两者对数据的存储与访问都相似,不同之
    处在于:每个Web 应用程序只生成一个Application 实例,并
    应用于所有的用户和会话;有效期为整个Web 应用程序的生
    命周期。因此,该方法非常适合存储那些数量少、不随用户
    变化而变化的常用数据。
    在多用户并发访问控制方面,Apllication 对象采用了锁
    定机制,但是它串行化了对Application 对象的访问,而这对
    于应用程序来说有可能形成严重的性能瓶颈。示例如下:
    Src.aspx:
    Application[“id”]=TextBox1.Text;
    Response.Redirect(“Dst.aspx”);
    Dst.aspx:
    Application.Lock(); //加锁
    Label1.Text=Application[“userid”].ToString();
    Application.Unlock(); //解锁
    Application.Remove(“id”); //清除Application 变量
    2.5 Cookie 的使用
    Cookie 是网站存放在用户机器上的一小块信息,主要用
    来保存一些与用户相关的东西。
    浏览器一般都对Cookie 的使用进行了一些限制[3]:
    (1)每个域最多只能在一台用户机器上存储20 个Cookie;
    (2)每个Cookie 的总尺寸不能超过4 096 Byte;(3)一台用户的
    机器上Cookie 的总数不能超过300 个。
    该方法的缺点是:并非所有的浏览器都支持Cookie;用
    户可以禁用和删除它;信息采用明文保存,安全性差。
    当特定的用户需要特定的数据片,并且需要把数据在某
    个可变的时段中保持的时候,Cookie 就非常方便。实例代码
    如下:
    Src.aspx:
    Response.Cookies[“id”].Value=TextBox1.Text;
    Response.Redirect(“Dst.aspx”);
    Dst.aspx:
    Label1.Text=Request.Cookies[“id”].Value;
    //清除Cookie 变量
    Response.Cookies[“id”].Expires=Now.AddDays(-1);
    //清除当前域名(和路径)下的所有Cookie
    Response.Cookies[cookie].Expires=Now.AddDays(-1);
    2.6 Static(静态)变量的使用
    准确地说,是使用类的公共静态变量。这种变量在应用
    程序运行期间分配固定的存储空间,它依类而不依类实例而
    存在,使用时直接通过类名即可访问。在ASP.NET 中,每个
    页面对应一个类,因此,可以利用它们的公共静态变量在页
    面间传递数据。
    该方法的优点是如果善加利用,则可以有效提高数据传
    递效率,缺点是如果滥用,则会导致用户或页面间数据紊乱,
    造成极大的隐患。示例如下:
    public static string id; //在类Src 中定义公共静态变量
    Src.aspx:
    id=TextBox1.Text;
    Response.Redirect("Dst.aspx");
    Dst.aspx:
    Label1.Text=Src.id;
    2.7 Cache 的使用
    应用程序中的缓存机制用于将需要大量服务器资源来创
    建的对象存储在内存中,以此大大改进应用程序的性能。这
    个机制同样可以用来传值。
    与其他方法不同的是,该方法需要设置缓存项优先级和
    缓存时间。因为当系统内存缺乏时,缓存机制会自动移除很
    少使用或优先级较低的项,从而造成传值失败。
    该方法的优点是传递数据的大小和数量无限制,速度快。
    缺点是缓存机制的操作相对比较复杂。
    在 ASP.NET 中,缓存机制通过Cache 类实现。示例如下:
    Src.aspx:
    Cache["id"]=TextBox1.Text;
    Response.Redirect("Dst.aspx");
    Dst.aspx:
    if(Cache["id"]!=null) Label1.Text=Cache["id"].ToString();
    Cache.Remove("id"); //移除缓存项
    如果 Cache["id"]为空,则传值失败。可使用如下方法实
    —90—
    现过期策略(以10 min 过期为例):
    Cache.Insert("id",TextBox1.Text,null,
    Cache.NoAbsoluteExpiration,new TimeSpan(0,10,0));
    2.8 Context 的使用
    Context 对象包含与当前页面相关的信息,提供对整个上
    下文的访问,包括请求、响应、以及上文中的Session 和
    Application 等信息。可以使用此对象在网页之间共享信息,
    从而实现页面间的传值。
    与使用 Form 的方法类似,该方法也能保持大量的数据,
    缺点也相同,但使用方法相对比较简单。示例如下:
    Src.aspx:
    Context.Items["id"]=TextBox1.Text;
    Server.Transfer("Dst.aspx");
    Dst.aspx:
    Label1.Text=Context.Items["id"].ToString();
    Context.Items.Remove("id"); //移除项
    2.9 ViewState 的使用
    ViewState 是ASP.NET 用来在同一页面的多个请求之间
    保存和还原服务器控件视图状态的一种机制。与传统的“同
    一页面”不同,ASP.NET 中“同一页面”的每一个请求都会
    导致服务器重新生成该页面,但是新生成的页面并不包含原
    来页面的数据。ViewState 的任务就是保存原来页面中服务器
    控件视图状态的数据供新页面使用。从这个意义上讲,
    ViewState 也可以看作是一种在页面间传递数据的工具。
    ViewState 的工作原理是:作为一个隐藏的窗体字段在客
    户端和服务器之间传递,可见,滥用ViewState 会加重页面
    回传的负担,从而降低应用程序的性能。此外,ViewState 也
    能被控件、页面和应用程序禁用。示例如下(在同一页面中):
    ViewState["id"]=TextBox1.Text; //数据保存
    Label1.Text=ViewState["id"].ToString(); //数据取出
    ViewState.Remove("id"); //数据移除
    2.10 Web.config 和Machine.config 的使用
    Web.config 文件用来设置每个ASP.NET 应用程序的一些
    属性,Machine.config 文件用来设置所有应用程序基础信息。
    这 2 种文件保存的数据一般都很小,多为明文,特别适
    合保存一些字符串常量, 如数据库连接信息。此外,
    Web.config 文件是可以扩展的,因此,也可以用来传递变量。
    因为这 2 种文件会被自动缓存,所以不存在因磁盘I/O
    产生的性能瓶颈问题。要注意的是文件中某些设置会导致文
    件被修改后Web 应用程序的重启(详情见文献[4])。示例如下:
    Src.aspx:
    WebConfigurationManager.AppSettings.Set("id",
    TextBox1.Text);
    Dst.aspx:
    Label1.Text=WebConfigurationManager.AppSettings["id"];
    //数据移除
    WebConfigurationManager.AppSettings.Remove("id");
      

  10.   

    另外一个页面接收参数
    str = request.QueryString("Args")
    拆分字符串存入数组
    arrArgs = split(str,",")如果要去除数组中的元素课如下
    for i=0 to ubound(arrArgs )    
      item=arrArgs (i)   
      response.Write item&"<br/>"  
    next    说明下 ASP 不支持定义变量并直接赋值   
    也就是不支持如此格式:Dim a = 1 
    应写成:
    Dim a
    a =1
      

  11.   

    哦  问题解决了 晕死  因为 
            strArgs = Request.QueryString("Args").ToString
     不是在load里面写的