Vah*_*iri 4 c# tostring .net-core asp.net-core asp.net-core-localization
ASP.NET Core中的本地化系统已经发生了很大的变化.将CurrentCulture不再可用在当前线程.
我正试图设置这里所解释的NumberFormat属性,以便自定义显示钱的格式,但显然不再可能这样.那么如何设置属性?CurrentCultureNumberFormatCurrentCulture
在asp.net核心之前用于此的代码:
CurrentCulture modified = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
Thread.CurrentThread.CurrentCulture = modified;
var numberFormat = modified.NumberFormat;
numberFormat.CurrencySymbol = "RM";
numberFormat.CurrencyDecimalDigits = 2;
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = ",";
Run Code Online (Sandbox Code Playgroud)
然后例如在我的代码中的某个地方我想做:
string fMoney;
fMoney = money.ToString("C");
return fMoney;
Run Code Online (Sandbox Code Playgroud)
并期望numberFormat应用设置.
您可以添加UseRequestLocalization到Configure()在方法Startup.cs:
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseRequestLocalization(new RequestCulture(new CultureInfo("es")));
app.Run(async (context) =>
{
context.Response.ContentType = "text/html";
await context.Response.WriteAsync(HtmlEncoder.Default.HtmlEncode(1000.5f.ToString("C")));
});
}
Run Code Online (Sandbox Code Playgroud)
结果:
1.000,50€
此外,更多的原始问题:
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
var modified = new CultureInfo(CultureInfo.DefaultThreadCurrentCulture.DisplayName);
modified.NumberFormat.CurrencySymbol = "RM";
modified.NumberFormat.CurrencyDecimalDigits = 2;
modified.NumberFormat.CurrencyDecimalSeparator = ".";
modified.NumberFormat.CurrencyGroupSeparator = ",";
app.UseRequestLocalization(new RequestCulture(modified));
app.Run(async (context) =>
{
context.Response.ContentType = "text/html";
await context.Response.WriteAsync(HtmlEncoder.Default.HtmlEncode(1000.5f.ToString("C")));
});
}
Run Code Online (Sandbox Code Playgroud)
结果:
RM1,000.50
| 归档时间: |
|
| 查看次数: |
921 次 |
| 最近记录: |