У меня есть несколько скрытых входных данных в представлении asp.net mvc. Их значения содержат объекты типа double
. Я хочу, чтобы они отображались с помощью InvariantCulture
, поскольку они используются для передачи в API (карты Google) на клиенте. Как и сейчас, они отображаются с запятой (,) в качестве десятичного разделителя, в то время как API ожидает точку (.) в качестве десятичного разделителя.
Лучшее решение было бы, если бы я мог указать культуру в атрибуте аннотации данных DisplayFormat
для свойства модели, но я не думаю, что это возможно:
public class Position
{
[DisplayFormat(DataFormatString="{0:G}, CultureInfo.InvariantCulture")]
public double Latitude;
...
}
Я также не могу просто установить CurrentCulture
в InvariantCulture
в моем методе Application_Start
, так как на экране есть другие значения, которые должны соответствовать культуре пользователя.
Итак, есть ли способ просто временно изменить текущую культуру прямо перед тем, как я сделаю Html.HiddenFor(Model => Model.Latitude)
для этого конкретного свойства, а затем сбросить его после этого?
Или есть другой лучший способ сделать это? Что считается лучшей практикой в этом отношении?