2014-08-27 4 views
0

Dans mon application ASP.NET MVC 5 j'ai un formulaire où l'utilisateur peut entrer le prix. Bien sûr, cette valeur n'est pas toujours entière, donc je l'ai définie comme double dans mon modèle. Et lorsque l'utilisateur entre une valeur, par ex. 10000.00 et appuyez sur Envoyer, le modèle envoyé au contrôleur ont toujours une valeur de 0.0 pour le prix de l'immobilier. Des idées pourquoi?ASP.NET MVC 5 double valeur toujours 0,0 dans le contrôleur

Ma propriété est définie dans le modèle comme:

 [Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "_errorEmpty")] 
     [Display(Name = "_carPrice", ResourceType = typeof(Resources))] 
     public Decimal Cijena { get; set; } 

À mon avis je l'utilise comme ceci:

  <div class="form-group"> 
       @Html.LabelFor(model => model.Cijena, new { @class = "col-md-2 control-label" }) 
       <div class="col-md-10"> 
        @Html.TextBoxFor(model => model.Cijena, new { @class = "form-control", id = "cijena" }) 
        @Html.ValidationMessageFor(model => model.Cijena) 
       </div> 
      </div> 

Et mon contrôleur:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult AddNewCar([Bind(Include = "Model, GodinaProizvodnje, GodinaKupnje, DrugiID, Cijena, RegOznaka, RegOd, RegDo, SelectedCityId")] AddCar car) 
    { 
    . 
    . 
    . 
    } 

Et quand le modèle est passé de vue à contrôleur sur soumettre la valeur pour le prix est toujours 0. J'ai essayé la propriété définie comme Decimal, Double, Float ... toujours 0 http://prntscr.com/4hel3f

+0

Quel est le type de données pour cette propriété? – HaBo

+0

Je l'ai défini comme Double – user3697231

+2

S'il vous plaît afficher le code pour votre modèle, vue et contrôleur –

Répondre

2

Je suppose que vous n'utilisez pas votre application dans la culture en-us. Essayez de remplacer la culture de threads par en-us afin que le séparateur décimal considéré par double.Parse soit "." au lieu de ",".

<configuration> 
<system.web> 
    <globalization 
     enableClientBasedCulture="true"   
     culture="en-GB"/> 
</system.web> 

Vous pouvez aussi créer un liant personnalisé pour le double/flotteur.

Questions connexes