Como renderizo apenas alguns campos-modelo específicos com uma InvariantCulture, enquanto o restante continua usando a cultura dos usuários?
Eu tenho algumas entradas ocultas em uma exibição asp.net mvc. Seus valores contêm objetos do tipodouble
. Eu quero que eles sejam renderizados com oInvariantCulture
como eles são usados para serem alimentados a uma API (google maps) no cliente. No momento, eles são renderizados com uma vírgula (,) como separador decimal, enquanto a API espera um ponto (.) Como separador decimal.
A melhor solução seria se eu pudesse especificar uma cultura noDisplayFormat
atributo de anotação de dados na propriedade do modelo, mas não acho que isso seja possível:
public class Position
{
[DisplayFormat(DataFormatString="{0:G}, CultureInfo.InvariantCulture")]
public double Latitude;
...
}
Também não posso simplesmente definir oCurrentCulture
paraInvariantCulture
no meuApplication_Start
, pois há outros valores na tela que precisam estar na cultura apropriada do usuári
Então, existe uma maneira de alterar temporariamente a cultura atual, pouco antes de eu fazer umaHtml.HiddenFor(Model => Model.Latitude)
para essa propriedade específica e depois redefina-a depois?
Ou existe outra maneira melhor de fazer isso? O que é considerado uma boa prática para isso?