2014-08-27 29 views
0

在我的ASP.NET MVC 5應用程序中,我有表單,用戶可以在其中輸入價格。當然,這個值並不總是整數,所以我在模型中將其定義爲double。當用戶輸入一些值時,例如10000.00並按提交,發送給控制器的模型總是有0.0的價值。任何想法爲什麼?ASP.NET MVC 5 double值總是0.0在控制器中

我的屬性模型定義爲:

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

在我看來,我使用它是這樣的:

  <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> 

我的控制器:

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

當模型是從視圖傳遞給控制器​​的提交價格爲價格始終是0.我已經嘗試定義的屬性爲十進制,雙精度,浮點數...總是0 http://prntscr.com/4hel3f

+0

該屬性的數據類型是什麼? – HaBo 2014-08-27 20:57:23

+0

我將其定義爲Double – user3697231 2014-08-27 21:00:02

+2

請發佈您的模型,視圖和控制器的代碼 – 2014-08-27 21:38:08

回答

2

我想你不是在en-us文化中運行你的應用程序。

嘗試將線程文化更改爲en-us,以便double.Parse考慮的小數點分隔符爲「。」。代替 」,」。

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

另外,您可以創建雙/浮法定製粘合劑。