asp.net – 如何更改当前文化的数据格式,以便它适用于整个Web应
我想为我的整个Web应用程序设置日期格式为’YYYY-MM-DD’.我可以通过创建CultureAndRegionInfoBuilder的对象然后注册它来完成此操作.但由于我的应用程序是在托管环境中,我无法运行可执行文件来注册文化.
我需要一种方法在Application_Start中执行此操作,以便它适用于整个Web应用程序. 我尝试使用Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern更改日期格式,但它似乎没有将更改传播到整个应用程序. 简而言之,我需要一种方法来从Web应用程序本身以编程方式更改整个Web应用程序的当前文化设置. 编辑:我尝试了以下@doitgood的建议,但得到异常System.InvalidOperationException:实例是只读的,而intellisense显示属性为Get或Set. void Application_BeginRequest(object sender,EventArgs e) { Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; } 为了使更改成为应用程序的全局变化,我在Application_Start中尝试了以下内容: System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; 我得到了相同的异常’Instance是只读的’. 解决方法
Sebeto的答案是正确的.我有同样的问题,我只是尝试了.以为我会添加更多解释.一旦确定了当前的文化,当前文化的属性确实是只读的.因此,您必须构造一个新的CultureInfo对象(最简单的方法是克隆现有文化).然后,您可以在使用自己的线程交换当前线程文化对象之前调整文化信息对象的属性.
CultureInfo newCultureDefinition = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); //make percentages n% instead of n % .ToString("p") adds a space by default english culture in asp.net newCultureDefinition.NumberFormat.PercentPositivePattern = 1; newCultureDefinition.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; Thread.CurrentThread.CurrentCulture = newCultureDefinition; 还有一个问题是在何处放置代码来改变当前线程的文化. 根据微软的例子,看看http://support.microsoft.com/kb/306162你甚至可以改变Page_Load上的当前文化.由于您可能在Page_Load之前需要格式化代码,因此我将更改放在我的基页OnInit中. protected override void OnInit(EventArgs e) { initGlobalCulturalFormattingChanges(); } 封顶: private void initGlobalCulturalFormattingChanges() { CultureInfo newCultureDefinition = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); //make percentages n% instead of n % (.ToString("p0") adds a space by default in asp.net newCultureDefinition.NumberFormat.PercentPositivePattern = 1; newCultureDefinition.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd"; Thread.CurrentThread.CurrentCulture = newCultureDefinition; } 将每个页面初始化的每个请求换成当前Thread的文化是最好的主意吗?我没有足够的数据来衡量它,但似乎工作正常:). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 为什么aspnet_compiler.exe这么慢(可以做得更快
- Windbg程序调试系列4-Live Debugging
- 如何在asp.net中使用控件状态
- asp.net-mvc-3 – 如何将模型绑定中使用的所有ValueProvide
- asp.net-mvc – 无法使用Simple Injector为每个请求创建DbC
- ASP.NET MVC中的Session以及处理方式
- asp.net-mvc – asp.net mvc – string或int的路由(即/ typ
- 在ASP.NET Core应用程序中使用标准Active Directory?
- EFCore 5 中的 DbContextFactory
- asp.net-core-mvc – IN MVC6返回Json(行,JsonRequestBehav
- 如何使用ASP.NET.Core Angular模板添加字体真棒
- asp.net-mvc – 我应该使用AsyncController在ASP
- asp.net-mvc – 已经处理了DbContext和autofac
- 什么ASP.NET MVC项目文件应保存在存储库中?
- asp.net – 如何使用会员资格提供者与EF代码优先
- asp.net-mvc – VS2008中的“publish …”动作是
- ASP.NET优化不会将LESS转换为CSS
- asp.net-mvc – 如果另一个属性在MVC 3 / jQuery
- ASP.Net MVC JQuery在IE8中未定义,但在Chrome中没
- asp.net core 从单机到集群