J'ai une application aspnet core qui fonctionne avec une configuration non anglaise (espagnole) :
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
......
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(new CultureInfo("es-AR"))
,SupportedCultures = new List<CultureInfo>
{
new CultureInfo("es-AR")
}
,SupportedUICultures = new List<CultureInfo>
{
new CultureInfo("es")
}
});
.........
}
En anglais, la partie décimale d'un nombre décimal est délimitée par un point, alors qu'en espagnol, on utilise une virgule :
- 10256.35 anglais
- 10256,35 espagnol
J'ai placé cette action dans un contrôleur :
[HttpPost]
public decimal Test(decimal val)
{
return val;
}
Si j'utilise postman et que j'envoie à cette action un json comme celui-ci {val : 15.30}, alors val dans l'action reçoit un 0 (le binding ne fonctionne pas à cause de la culture). Si j'envoie un json comme ceci {val : 15,30} alors dans l'action je reçois 15.30. Le problème que j'ai est que j'ai besoin que l'action accepte les décimales avec des virgules, parce que c'est le format qui vient des entrées de type texte dans les formulaires de l'application. Mais j'ai aussi besoin d'accepter les décimales avec un point qui vient de la requête au format json. Il n'y a aucun moyen de spécifier un décimal/float en json qui accepte une virgule (l'envoyer en tant que chaîne n'est pas une option). Comment faire ? Je suis en train de me rendre fou avec ça.
Merci !