相关疑难解决方法(0)

如何使用InvariantCulture仅渲染某些特定的模型字段,而其余的则继续使用用户文化?

我在asp.net mvc视图上有几个隐藏的输入.它们的值包含类型的对象double.我希望它们能够被渲染,InvariantCulture因为它们习惯于被提供给客户端上的api(谷歌地图).就像现在一样,它们以逗号(,)作为小数分隔符进行渲染,而api则希望将点(.)作为小数分隔符.

最好的解决方案是,如果我可以DisplayFormat在模型的属性上的数据注释属性中指定文化,但我认为这不可能:

public class Position
{
    [DisplayFormat(DataFormatString="{0:G}, CultureInfo.InvariantCulture")]
    public double Latitude;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我也不能在我的方法中设置CurrentCultureto ,因为屏幕上还有其他值必须在适当的用户文化中.InvariantCultureApplication_Start

那么,有没有办法暂时改变当前的文化,就在我Html.HiddenFor(Model => Model.Latitude)为特定属性做一个之前,然后重置它?

或者还有另一种更好的方法吗?什么是最佳做法?

c# asp.net-mvc formatting culture render

6
推荐指数
1
解决办法
2187
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

culture ×1

formatting ×1

render ×1