日期:2014-05-16  浏览次数:20594 次

asp.net页面中英文切换,以及传递参数丢失的问题
1.对一个asp.net系统进行修改,实现中英双语,采用方案:全局资源(GlobalResources)
2.在母版上放了两个链接以实现中英文切换:
    <a href="?currentculture=zh-cn">中文(中国)</a>&nbsp;<a href="?currentculture=en-us">English(USA)</a>
3.从页面A传递参数打开页面B,url为:http://xxxx./PageB.aspx?ID=20246
4.此时如果单击母版页上的链接(如2所述)进行语言切换,页面B将刷新,url为:
   http://xxxx./PageB.aspx?currentculture=en-us
  但参数ID=20246却丢失了。

本人是菜鸟,请高手帮忙,指导解决思路,有简要代码更好,谢谢了。

------解决方案--------------------
<a href="<%=Server.UrlEncode(Request.Url.ToString())+"&currentculture=en-us" %>">English(USA)</a>

  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
因为你中国和English这两个链接是直接在当前链接上并且使用了?currentculture=zh-cn替换参数来进行跳转的

最好这两个链接的地址又后台生成或者使用javascript进行修改过
比如后台的话

//这两个变量你需要定义为受保护级别以上的全局变量
            string url_cn;
            string url_en;

            if (Request.QueryString.Count > 0)
            {//这里表示地址栏有传值过来
                url_cn = Request.Url.ToString() + "&currentculture=zh-cn";//以追加的方式添加参数
                //url_en = ... //英文地址一样的处理
            }
            else {
                url_cn = Request.Url.ToString() + "?currentculture=zh-cn";//直接加上参数
            }

            //好了之后使用前台标签将url_cn url_en输出的前台 <a href='<%= url_cn %>'>中国</a>