- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 Webforms ASP.Net 4.5 应用程序,它没有在 web.config 或代码中的其他地方指定文化或 uiculture 设置。我担心日期格式是否适合来自不同国家的用户,即文化设置而不是 UICulture 设置。
问题:如果英国、德国和美国的用户使用此 ASP.Net 应用程序,那么在 asp:Label 控件中显示时是否会自动格式化日期值,或者开发人员需要明确地进行这种格式化?
Label 控件使用 ASP.Net Webforms 的数据绑定(bind)语法进行数据绑定(bind),如下面的代码片段所示。例如,如果美国用户的订单日期是 10/4/2014,那么对于英国或德国的用户,它应该显示为 4/10/2014。
HTML
<asp:Label id="lblOrderDate" runat="server" Text="<%# this.OrderDate %>"></asp:Label>
代码隐藏
protected void Page_Load(object sender, EventArgs e)
{
string orderId = this.txtOrderId.Text;
Order order = DAL.GetOrder( orderId );
this.OrderDate = order.OrderDate;
this.Page.DataBind();
}
public DateTime OrderDate { get;set; }
更新 1
我不确定是否需要在页面代码隐藏中包含以下代码来设置区域性,或者它会由 ASP.Net 自动完成?我的猜测是 ASP.Net 会自动执行此操作,但不确定。
protected override void InitializeCulture()
{
string language = "en-us";
//Detect User's Language.
if (Request.UserLanguages != null)
{
//Set the Language.
language = Request.UserLanguages[0];
}
//Set the Culture.
Thread.CurrentThread.CurrentCulture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language);
}
最佳答案
Asp.net 可以根据浏览器的内容自动设置文化。 (这是我们在 Request.UserLanguages 中得到的)。如果你这样做了 "<%# this.OrderDate %>"
将根据它自动格式化。
To have ASP.NET set the UI culture and culture to the first language that is specified in the current browser settings, set UICulture and Culture to auto. Alternatively, you can set this value to auto:culture_info_name, where culture_info_name is a culture name. For a list of culture names, see CultureInfo. You can make this setting either in the @ Page directive or Web.config file.
<%@ Page Culture="auto" %>
或全局所有页面。
<configuration>
<system.web>
<globalization culture="auto"/>
</system.web>
</configuration>
但是您不能信任 Request.UserLanguages。这只是浏览器的偏好。最好允许用户通过列表框进行选择。
您可以通过覆盖页面的 initializeculture 调用,以编程方式为每个请求显式设置它。
protected override void InitializeCulture()
{
if (Request.Form["ListBox1"] != null)
{
String selectedLanguage = Request.Form["ListBox1"];
Culture = selectedLanguage ;
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(selectedLanguage);
}
base.InitializeCulture();
}
母版页没有 InitializeCulture() 调用。所以如果你想对所有页面都这样做,那么创建一个继承 Page 的 BasePage。然后允许您的所有页面继承自该页面。参见 this answer
关于c# - Culture 是否自动应用于 ASP.Net Webforms? (不是 UICulture),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417109/
我遇到了一个使用内置全局化工具的 ASP.NET 应用程序崩溃的情况。 在带有 Culture="auto"指令的 ASP.NET 页面上,使用中性文化作为其浏览器语言(例如“zh-Hans”)的用户
某些类中是否有属性可以告诉我当前文化是否实际上是默认文化。 类似于本地化如何与 winforms 一起工作。如果语言是默认语言,它会以表格形式说明。 假设我在 en-US 中 - 我如何通过代码判断
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我知道这有点离题,但是当我们的应用程序出现问题时,IT 开发中使用的名称“BUG”的起源是什么? 最佳答案 因为一只蝴蝶被困在电脑里,它造成了一个错误。这是真的! 关于culture - 名称错误的起
他想知道我们是否应该有弹性工作时间,允许与工作无关的互联网访问等的意见。 我们公司大约有 200 人,一半是程序员,一半是销售。我们都希望工作场所富有成效且充满乐趣。 我应该提出哪些问题? 支持和反对
他们用拉丁语编码吗? 他们有自己的编程语言吗? 我只是好奇。 最佳答案 我为 Microsoft Windows 和 Office 维护韩文 IME(输入法编辑器)。因此,我每天与韩国开发者合作,定期
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我有一个云服务 Web 角色,需要在其上运行一些 PowerShell 以确保服务器始终设置在正确的区域性中:en-AU。 原因是 Microsoft 可以随时重置文化值(value)观。 当我运行时
我目前正致力于在 Kentico 8.2 中推出韩文版网站,并处理该网站的本地和开发版本。 我可以让一个页面以韩语加载,甚至可以在导航时以韩语加载一些后续页面。通常我导航到的第三或第四页将恢复为英语。
每当我添加 i18n.en.xml或类似的(只需以 .xml 结尾)并编译我的项目,该文件被编译成 en/.resources.dll ,尽管如此,我只是想将它作为资源单独嵌入到主程序集中。 我已将其
我发现我的机器和构建服务器上的测试结果不同。我设法找到了不同的单行。这是一个字符串比较。这两个字符串的第一个字符不同。 下面的测试在我的本地机器上通过了,但在构建机器上失败了。 [TestClass]
嗯,我正在尝试获取文化的默认日期格式。 例如,en-us 有“m/dd/yyyy”,en-uk 有“d/mm/yyyy”。文化可以是客户端机器上的任何东西。和 Dateformat 也可以是任何东西。
我最近在我的 powershell 脚本中与文化相关的返回值遇到了一些问题。相同的脚本返回不同的值,具体取决于它是哪台机器。 所以我认为可能文化设置不同,并且对于一台服务器它返回了。 get-cult
我正在尝试编写着陆页代码,通过阅读 Culture 来决定是将请求重定向到英文网站还是斯洛伐克语网站。 代码如下: public partial class _default : System.Web
这是一个 SEO 问题: 我可以选择根据访问者的文化显示页面标题。 如果是英文: getCulture() == 'en') : ?> Hello, this is an englis
CA1305当存在需要 IFormatProvider 的重载但代码中未使用此重载时引发。 例如,以下代码会引发此警告: string.Format("{0} - {1}", id, name); 消
我创建了一个 WPF 转换器类: public class DoubleConverter : IValueConverter { public object Convert(object v
我想要的是..如果文化是 en-US 那么 string dateFormat="MM/dd/yyyy"; string timeFormat="24.00 hrs"; 如果文化是 en-GB 那么
我想修改我的 UWP 应用,使其根据平台语言的不同而略有不同。我知道我可以在使用 C# 编程时获取文化信息,但这个应用程序是用 JavaScript 编写的。 我搜索了 MSDN 并查看了 gitHu
我是一名优秀的程序员,十分优秀!