多种语言切换的问题,高手进
情况是这样的,网站用资源文件做了多国语言,在切换的语言的时候,用了全局的PreRequestHandlerExecute或BeginRequest切换语言,但是有个小问题,就是页面的状态不能保存,例如访问的页面是http://localhost/a.apsx?id=2,切换语言之后(如英文)就是http://localhost/a.apsx?CurrentCulture=en-us,那个id=2丢失了,而且页面上控件的状态也保存不了,切换的方法是:string str = Request.QueryString["CurrentCulture"];
if (!String.IsNullOrEmpty(str))
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo(str);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(str);
}
这个代码放在PreRequestHandlerExecute或BeginRequest都解决不了上面的那个状态丢失的问题,请问有没有好的方法做到保存页面的状态呢? --------------------编程问答-------------------- 可以用Session,把当前的语系保存在Session中。然后加载页面时读取Session加以判断。。。 --------------------编程问答--------------------
同意楼上的,这个没问题 --------------------编程问答--------------------
切换语言的代码有问题,把代码贴出来,不是你贴出的那一块,是redirect的那部分代码! --------------------编程问答-------------------- public string url = "";
private void Page_Load(object sender, System.EventArgs e)
{
if(Request.QueryString.ToString()==""||Request.QueryString.ToString()==null)
{
url = ".." +"/"+ "文件所处文件名"+"/" + System.IO.Path.GetFileName( Request.CurrentExecutionFilePath.ToString() );
}
else
{
url = ".." +"/"+ "文文件所处文件名名"+"/" + System.IO.Path.GetFileName( Request.CurrentExecutionFilePath.ToString() );
url = url + "?" +Request.QueryString.ToString();
}
} --------------------编程问答-------------------- 语言切换用cookie保存比较好
url还麻烦.... --------------------编程问答-------------------- 我用cookie保存的,
语言是在xml文件里的。
效果如:http://oubk.com --------------------编程问答--------------------
http://www.hydroponics.hk --------------------编程问答-------------------- Session确实可以 --------------------编程问答-------------------- 使用Application缓存所有的语言,在当前Session中添加一个到对应语言的引用,重新加载主框架就可以了
补充:.NET技术 , ASP.NET