A.aspx aid---> C.aspx
B.aspx bid---> C.aspx如果是
string aid = Request.QueryString["aid"].ToString();
string bid = Request.QueryString["bid"].ToString();A传过来没有bid,B传过来没有aid,总有一个没有,就报“未将对象的引用设置到对象的实例”怎么办?

解决方案 »

  1.   

    A.aspx(aid)---->B.aspx(aid(从a获取,bid))------>c.aspx
      

  2.   

    if( Request.QueryString["aid"] != null )
        string aid = Request.QueryString["aid"].ToString();if( Request.QueryString["bid"] != null )
        string bid = Request.QueryString["bid"].ToString();
      

  3.   

    楼上这样写好象不行吧,Request.QueryString如果url没有传递参数会报未将对象的引用设置到对象的实例”的错误的,建议LZ使用Session
      

  4.   

    你直接 在两个页面这么写好了
    A.aspx?aid=值&bid=
    B.aspx?aid=&bid=值这样,就可以把两个值都传过去了,而且不是没有值,是空值!呵呵
      

  5.   

    哦?以前就用if( Request.QueryString[""] != null )判断的,怎么现在不行了?
      

  6.   

    哦?以前就用if( Request.QueryString[""] != null )判断的,怎么现在不行了?
    ===============
    Request.QueryString要求有一个对象的引用指向他。而这个对象不存在。就会出现未将对象的引用设置到对象的实例。
      

  7.   

    基本上与ljupin(蓝眼泪.NET ---> I come from Ningxia of China) 的意思一致,代码可以写为:string aid={默认值};
    string bid={默认值};
    if( Request.QueryString["aid"] != null )
        aid = Request.QueryString["aid"].ToString();if( Request.QueryString["bid"] != null )
        bid = Request.QueryString["bid"].ToString();但是,细想一下,这其实要你自己扪心自问设计的依据是什么。C.aspx 根据自己的功能来设计需求的参数,而不是根据谁可能调用自己来设计的。它设计了自己需求的参数接口,A.aspx、B.aspx就得提供这个C.aspx需求的参数。你完全逆向分配出高度耦合的职责,设计出的程序就会很难使用。因此,其实更普通的参数应该是C.aspx仅获取一个参数:string cid={默认值};
    if( Request.QueryString["cid"] != null )
        bid = Request.QueryString["cid"].ToString();
      

  8.   

    bid = Request.QueryString["cid"].ToString();  -->  cid = Request.QueryString["cid"].ToString();