我的字串中有%105%怎么同过url传到另一界面,用server.urlEncode,再server.urlDecode,但%105%变成% 不懂字符5%估计是把%10变成了一不懂字符

解决方案 »

  1.   

    试试javascript的escape和unescape 函数
      

  2.   

    页面间传参的常用方式
    1)request方式:仅适用于一个或多个字符串
      Response.Redirect("webform2.aspx?myid=123&myname=eddie005");
      取: string myID = Request.QueryString["myid"];
           string myName = Request.QueryString["myname"];
    但是该方法传参遇到特殊的字符例如“”&、“+”等就会有问题,所以需要进行编码转换:
    string tmpID = Server.UrlEncode("123");
              string tmpName = Server.UrlEncode("暴&走");
    Response.Redirect("webform1.aspx?myid=" + tmpID + "&myname=" + tmpName);
    取: string myID = Server.UrlDecode(Request.QueryString["myid"]);
               string myName = Server.UrlDecode(Request.QueryString["myname"]);
    对应的Javascript函数是escape()和unescape()2)Session:适用于对象
      存:Session["myTable"] = new DataTable();
      取:DataTable tmp = Session["myTable"] as DataTable;3)Server.Transfer:适用于对象
    webForm1:
           public int MyAge
            {
                get{return Convert.ToInt32(TextBox1.Text);}
            }
            public DataTable MyTable
            {
                get{return myDataTable;}
            }        private void Button1_Click(object sender, System.EventArgs e)
            {
                Server.Transfer("webForm2.aspx");
        }
    webForm2:
       private void Page_Load(object sender, System.EventArgs e)
            {
                if(!IsPostBack)
                {
                    if(Context.Handler.ToString()=="ASP.webForm1_aspx")
                    {
                        webForm1 webForm =(webForm)Context.Handler;
                        int myAge = webForm.MyAge;
                        DataTable tmpTable = webForm.MyTable;
                    }
                }
       }
      

  3.   

    先将%105%中的%转换成别的字符
    在取值页面,取得这个字符并转换成%105%。
    这样最方便了,而且肯定不会出错:)
    Good luck!
      

  4.   

    我也想过zhangfire(色狼也可以学.net) 的办法,咳我的页面有200-300都可能存在此问题,难道我一个个去改,就是那种模糊查询%105%,然后将此查询条件传到另一页面。只能在url中传。咋办