我想以用户选择的格式显示日期和货币金额 如何从客户端计算机中检索此内容?
或者,还有其他方法可以正确格式化日期/货币吗?
由于
答案 0 :(得分:1)
浏览器公开它的语言环境:您可以使用** Thread.CurrentThread.CurrentUICulture**
你可以用你的选择文化覆盖他们的文化(如果从菜单中选择另一种语言)
格式化日期时间,字符串读取here
注意,在页面循环中很快就会设置文化,如果将其设置为较晚,则资源文件将是之前所选文化的文件。
要在周期的早期设置文化,您可以创建一个基页(继承ViewPage){}
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
namespace NerdDinner.Views
{
public class NerdDinnerViewPage<T> : ViewPage<T> where T : class
{
protected override void InitializeCulture()
{
base.InitializeCulture();
Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture.Clone() as CultureInfo;
if (Thread.CurrentThread.CurrentCulture != null)
{
Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyDecimalSeparator = ".";
Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = ".";
}
}
}
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="NerdDinner.Views.NerdDinnerViewPage<NerdDinner.Models.DinnerFormViewModel>" %>
这是完整的示例,但我为了简单而复制了代码:example
另一种方法是使用可以找到的全局asax here
答案 1 :(得分:0)
为了为您自己选择.NET工具选择有用的默认值(例如CultureInfo),我的建议(在Web场景中)将解析HTTP用户代理字符串,如提供的示例{{3 }}。但此外,用户应该能够覆盖默认值,您应该将用户选择保存在cookie中,如果适用,还应保存用户选项。