【问题标题】:ASP.NET MVC 5 double value always 0.0 in controller控制器中的 ASP.NET MVC 5 双精度值始终为 0.0
【发布时间】:2014-08-27 20:56:21
【问题描述】:

在我的 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

【问题讨论】:

  • 该属性的数据类型是什么?
  • 我定义为 Double
  • 请发布您的模型、视图和控制器的代码
  • 附带说明,您应该使用decimal,而不是double
  • 抱歉延迟回复...我已经发布了我的代码...@Shoe 我也尝试使用十进制,但值仍然是 0:/

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


【解决方案1】:

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

尝试将线程区域性更改为 en-us,以便 double.Parse 考虑的小数分隔符为“。”而不是“,”。

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

或者,您可以为 double/float 创建自定义活页夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多