C# 是否将货币、日历更改为所选语言,而不是asp.net中的标签?
我有一个带有日历的网页,一个用来保存货币值的标签,还有一个用来打招呼的标签。当我从下拉列表中选择语言时,它会更改货币标签、日历,但hello不会更改。以下是aspx页面和cs文件的精简代码: ASPX:C# 是否将货币、日历更改为所选语言,而不是asp.net中的标签?,c#,asp.net,globalization,C#,Asp.net,Globalization,我有一个带有日历的网页,一个用来保存货币值的标签,还有一个用来打招呼的标签。当我从下拉列表中选择语言时,它会更改货币标签、日历,但hello不会更改。以下是aspx页面和cs文件的精简代码: ASPX: 呃。。。你到底希望发生什么?货币和日期具有基于区域设置的内置格式。你想让ASP.NET为你做语言翻译?!?对不起,你在那件事上运气不好。:)我错过了你的意图吗 一些进一步的建议。。。避免这样的代码: string language = Request["ddlLanguages"]; 这不好。
呃。。。你到底希望发生什么?货币和日期具有基于区域设置的内置格式。你想让ASP.NET为你做语言翻译?!?对不起,你在那件事上运气不好。:)我错过了你的意图吗 一些进一步的建议。。。避免这样的代码:
string language = Request["ddlLanguages"];
这不好。。。这只是请求对象特性的一个副作用,一旦您将此代码放入命名容器(如内容页)中,它就会很快失效。改为这样做:
string language = ddlLanguages.SelectedValue;
如果希望标签本地化,则需要研究如何为字符串使用本地化的资源文件(这就是“不使用字符串文字”最佳实践的来源) 您需要手动翻译希望本地化的文本,并将这些字符串编译成特定于语言的资源文件,然后可以通过中的对象方法访问该文件
谢谢,我从我观看的视频中获取了示例。我以前从未实际使用过Request。我相信此人说他们使用了Request,因为该值可能在运行时未初始化,SelectetdValue将抛出错误。
string language = Request["ddlLanguages"];
string language = ddlLanguages.SelectedValue;
// Create a resource manager to retrieve resources.
ResourceManager rm = new ResourceManager("items",
Assembly.GetExecutingAssembly());
// Retrieve the value of the string resource named "hello".
// The resource manager will retrieve the value of the
// localized resource using the caller's current culture setting.
String hello = rm.GetString("hello");
lblHello.Text = hello;