ASP.NET MVC 5双值始终为0.0在控制器中

时间:2014-08-27 20:56:22

标签: controller double asp.net-mvc-5

在我的ASP.NET MVC 5应用程序中,我有一个用户可以输入价格的表单。当然,该值并不总是整数,所以我在模型中将其定义为double。当用户输入一些值时,例如10000.00并按提交,发送给控制器的型号总是有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)
    {
    .
    .
    .
    }

当模型从视图传递到控制器时,Price的提交值始终为0.我已尝试定义属性为Decimal,Double,Float ...始终为0 http://prntscr.com/4hel3f

1 个答案:

答案 0 :(得分:2)

我猜你没有在en-us文化中运行你的应用程序。

尝试将线程文化更改为en-us,以便double.Parse考虑的小数分隔符为&#34;。&#34;而不是&#34;,&#34;。

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

或者,您可以为double / float创建自定义绑定器。