现在有一个页面,把参数传到另一个页面,但是另一个页面接收的是带修饰符,并且带参数。怎么解决?这是前台页面:url: "../Controls/AjaxFMModulate.ashx?type=getdynpara&sid="+sid+"&math="+Math.random(),后台页:
       public   void ProcessRequest(HttpContext context)
        {
            if (context.Request.QueryString["type"] == "getdynpara")
            {
                context.Response.Write(timer_auto_Tick());
                context.Response.End();
            }在page_load 是不能带修饰符的。所以这个问题该怎么解决。就是要用这个public   void ProcessRequest(HttpContext context)方法体来接收传来的参数。

解决方案 »

  1.   

    大哥,把这个参数传过去,后面的页面有个timer一直刷新设备的值。所以每隔1m就会调用这个方法体。
      

  2.   

    if (context.Request.QueryString["type"] == "getdynpara")
    这个有什么问题吗?
    唯一的问题应该就是没有判断是否为空值
    if (context.Request.QueryString["type"]!=null &&  context.Request.QueryString["type"]== "getdynpara")
      

  3.   

    get方式传递过去,ashx获取context.Request.QueryString[]
    post方式传递过去,ashx获取context.Request.Form[]
      

  4.   

    我申明的变量接收到的是NULL,
      

  5.   

     刚才没理解你意思!../Controls/AjaxFMModulate.ashx?type=escape(getdynpara)&sid="+escape(sid)+"&math="+Math.random()这样就好了! 祝你成功!
      

  6.   


    是取不到值。我声明了变量, string text = Request.QueryString["type"];
                if (text == "getdynpara")
                {
                    timer_auto_Tick();
                }接收到的是NULL。
      

  7.   


      public void ProcessRequest(HttpContext context)
      {
           context.Response.ContentType = "text/plain";
           if (context.Request.QueryString["type"] == "getdynpara")
           {
                context.Response.Write(timer_auto_Tick());
                context.Response.End();
            }
        }
      

  8.   

    不好意思 ,前台页面弄错了 ,是url: "../Controls/FMModulate.ascx?type=getdynpara&sid="+sid+"&math="+Math.random(),
      

  9.   

    “AjaxFMModulate.ashx” 这个页面是可以用 的, 新需求是要把这个页面的代码 整合到新的页面“FMModulate.ascx”。所以在老页面可以用的方法体,到新页面就不能用了
      

  10.   

    莫非你是post方式的?? public void ProcessRequest(HttpContext context)
      {
           context.Response.ContentType = "text/plain";
           if (context.Request.Form["type"] == "getdynpara")
           {
                context.Response.Write(timer_auto_Tick());
                context.Response.End();
            }
        }
      

  11.   


    我这个是点击一个节点,然后把ID传过去,根据这个ID来查询设备的IP,最后根据设备IP获取设备的参数。但是现在只需要把url: "../Controls/AjaxFMModulate.ashx?type=getdynpara&sid="+sid+"&math="+Math.random(),这里面的参数传到新页面的page_load里面。还有其他方法把url: "../Controls/AjaxFMModulate.ashx?type=getdynpara&sid="+sid+"&math="+Math.random(),让一运行新界面就接收这个值吗?写一个方法是行,但是需要带1个参。所以还是不行
      

  12.   

    .ashx是用户控件,他不用管提交的事件,他不能直接被访问,要经过aspx来调用他,所在在aspx处理Request的工作就可以了,然后将获取来的值附给.ashx控件
      

  13.   

    .ashxpublic void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "..";
            context.Request["type"];
      

  14.   

    ashx
    获取
    context.Request["name"]
      

  15.   

    接收过来的值,是要去双引号的,context.Request.QueryString["type"].replace(""","")
      

  16.   

    可以使用Session来做这件事,然后把session删除掉,若再两个页面传输的话。要不就再Page_PreRender事件中写你的操作。。
      

  17.   


    建议用Session写,然后再把session删除;如:
    if(Session["aaa"] !=null)
    {
        viewstate["aaaa"] = Session["aaa"];
         //添加你操作的函数
        Session.Remove("aaa");
    }