我想用js的url传值的方法把一个xml字符串传到另外一个页面后台,怎么传能把该xml全传过去?
例如 window.location.href = "WorkFlow/WorkFlowList.aspx?XmlText='" + b + "'";b是xml字符串,太长了,怎么传过去?

解决方案 »

  1.   

    传值方法很多,可以考虑用别的。非要用url的话,可以只传一个标识,新窗口中根据这个标识去加载内容,标识和内容,类似key和value的关系。
      

  2.   

    改为Post方式
    Get方式传值是有大小限制的
      

  3.   

    我怎么指定用post?请看我给的代码,直接是:window.location.href = "WorkFlow/WorkFlowList.aspx?XmlText='" + b + "'";这样传的,请高手指点!
      

  4.   

    表单传值
    <form id='form1' method='pst' action='WorkFlow/WorkFlowList.aspx'>
    <input type='hidden' name='XmlText'/>
    </form>
    js提交表单前把hidden的value赋值为b,然后submit.也可以考虑ajax、拼接发送报文……原理都是一样,走post
      

  5.   

    post传值        protected void Page_Load(object sender, EventArgs e)
            {
                string strUrl = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/')) + "/WebForm1.aspx";
                ASCIIEncoding code = new ASCIIEncoding();
                string postData = "aa=iceapple.net&bb=yibin.net"; //这是要post的数据 
                byte[] data = code.GetBytes(postData);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUrl);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded"; //这里的ContentType很重要! 
                request.ContentLength = data.Length;
                using (Stream stream = request.GetRequestStream()) //获取数据流,该流是可写入的 
                {
                    stream.Write(data, 0, data.Length); //发送数据流 
                    stream.Close();
                }            HttpWebResponse res = (HttpWebResponse)request.GetResponse();
                StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
                string backstr = sr.ReadToEnd();
                Response.Write(backstr);
                sr.Close();
                res.Close();        }
    接收传值的页面WebForm1.aspx        protected void Page_Load(object sender, EventArgs e)
            {
                Response.Write(Request.Form["aa"].ToString());
                Response.Write(Request.Form["bb"].ToString());
            }
      

  6.   

    get传值本来就有长度限制。
    而且跳转页面的方法并不只是location.href。
    改成post方式提交表单吧。
      

  7.   

    你用GET方式不行,要用POST方式。
      

  8.   

    string postData = "user=123&pass=456"; // 要发放的数据 
    byte[] byteArray = Encoding.UTF8.GetBytes(postData); HttpWebRequest objWebRequest = (HttpWebRequest)WebRequest.Create("http://www.abc.com/a.aspx"); 
    objWebRequest.Method = "POST"; 
    objWebRequest.ContentType = "application/x-www-form-urlencoded"; 
    objWebRequest.ContentLength = byteArray.Length; 
    Stream newStream = objWebRequest.GetRequestStream(); 
    // Send the data. 
    newStream.Write(byteArray, 0, byteArray.Length); //写入参数 
    newStream.Close(); HttpWebResponse response = (HttpWebResponse)objWebRequest.GetResponse(); 
    StreamReader sr=new StreamReader(response.GetResponseStream(), Encoding.Default); 
    string textResponse = sr.ReadToEnd(); // 返回的数据