我有这条线
@String.Format(“{0:C}”,@price)
在我看来。我希望它在价格前显示一个美元符号,但它显示一个英镑符号。我如何做到这一点
我强烈怀疑问题仅仅是处理请求的线程的当前区域性设置不正确
您可以为整个请求设置区域性,也可以在格式化时指定区域性。无论是哪种方式,我都建议不要使用复合格式的string.Format,除非您确实需要格式化多个内容(或更广泛的消息)。相反,我会使用:
@price.ToString(“C”,文化)
它只是让事情变得简单一些
编辑:根据您的评论,听起来您可能很想使用英国文化,而不考虑用户的文化。同样,可以将UK区域设置为整个请求的线程区域,也可以使用“常量”引入您自己的helper类:
公共静态类区域性
{
公共静态只读文化信息联合王国=
获取文化信息(“en GB”);
}
然后:
@price.ToString(“C”,Cultures.UnitedKingdom)
根据我的经验,拥有这样一组“命名”的区域性可以使使用它的代码更易于阅读,而且您不需要在多个位置正确获取字符串