在我的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
答案 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创建自定义绑定器。