2017-10-20 2 views
1

Si je débogue mon application Web locale, cela fonctionne. L'entrée est un nombre décimal avec une virgule comme "10,5". Lorsque je publie l'application web sur azure, l'application n'accepte plus les nombres avec virgule. Lorsque je saisis les numéros de l'application de publication avec un point tel que "10.5" cela fonctionne mais je reçois le modèle "105". Quelqu'un a une idée pourquoi?L'application Web locale accepte les nombres avec une virgule et ne les publie pas

Local:

How it should works

Date de publication:

How it not works

Modèle:

public class MeasuredDataViewModel 
{ 
    ..... 
    public List<MeasuredData> MeasuredData { get; set; } 
    ..... 
} 

public class MeasuredData 
{ 
    public int MeasuredDataId { get; set; } 

    [ForeignKey("DataCategory")] 
    public int DataCategoryId { get; set; } 

    [ScriptIgnore(ApplyToOverrides = true)] 
    public virtual DataCategory DataCategory { get; set; } 

    public double Value { get; set; } 

    [ForeignKey("OperatingData")] 
    public int OperatingDataId { get; set; } 

    public bool ManualIsChecked { get; set; } 

    [ScriptIgnore(ApplyToOverrides = true)] 
    public virtual OperatingData OperatingData { get; set; } 

    public virtual ICollection<Graph> Graphs { get; set; } 

    public MeasuredData() 
    { 
     Value = 0.0; 
    } 
} 

HTML:

<div class="row" style="max-width:580px;"> 
        <div class="col-xs-6" style="overflow-y:scroll; overflow-x:auto; height:650px; max-width:300px; display:block;"> 
         @for (int i = 0; i < measuredData.Count; i++) 
         { 
          var me = measuredData[i]; 
          var index = 0; 

          if (me.DataCategory.NumberId != 11.02 && me.DataCategory.NumberId != 20.02 && me.DataCategory.NumberId != 20.03) 
          { 
           for (int j = 0; j < Model.MeasuredData.Count; j++) 
           { 
            if (Model.MeasuredData[j].Equals(me)) 
            { 
             index = j; 
            } 
           } 

           <div class="row"> 
            <div class="col-xs-12"> 
             @Html.HiddenFor(m => m.MeasuredData[index].MeasuredDataId) 
             @Html.HiddenFor(m => m.MeasuredData[index].DataCategoryId) 
             @Html.HiddenFor(m => m.MeasuredData[index].OperatingDataId) 

             <text>@me.DataCategory.Tag @me.DataCategory.NumberId</text> 
             <br /> 
             @Html.TextBoxFor(m => m.MeasuredData[index].Value, new { @class = "form-control", 
                 @id = @me.DataCategory.NumberId + "-box", @style = "max-width:250px;"}) 
            </div> 
           </div> 
           <br /> 
          } 
         } 
        </div> 
+0

Azure, paramètres régionaux par défaut (culture) est 'en-US'. Pouvez-vous essayer en changeant les paramètres régionaux à une valeur correspondant à votre ordinateur local? –

Répondre

0

L'ordinateur sur lequel vous avez publié utilise un CultureInfo différent (par défaut, je dirais en-US alors que vous attendez de-DE).

Vous devez définir votre CultureInfo. Ne comptez pas sur la valeur par défaut installée sur le système. Je ne sais pas ce que vous voulez définir, peut-être le client ou peut-être un spécifique?

Further reading on how to do it

+0

Merci beaucoup. – Phill