我有一个名为Gold的数据模型,该模型具有一个十进制的黄金价格属性,如下所示:
public class Gold
{
[key]
public int GoldId { get; set; }
public decimal RateValue { get; set; }
}
我知道EF十进制默认精度和小数位数为(18,2),这对我来说足够了。我不想更改它,在本地主机上插入十进制值也没有任何问题。 但是在主机上发布我的网站后,当我尝试插入1210.40这样的小数时,它不会插入,或者有时它会在db中插入1210.00(比例错误)而没有任何错误!
我完全感到困惑,因为在本地运行代码时没有这个问题。 没有点数字右边的1210这样的小数没有问题!!!
这是我插入小数的代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include="RateValue")]Gold manualPrices)
{
Gold ons = new Gold() {RateValue=(decimal)manualPrices.RateValue,};
db.GoldRepository.Insert(ons);
db.Save();
}
剃刀代码:
@Html.EditorFor(model => model.RateValue, new { htmlAttributes = new { @class = "form-control" } })
更多信息:我正在使用MVC .Net Framework 4.5.2,代码优先,工作单元,MS SQL 2016。
答案 0 :(得分:0)
感谢@StephenMuecke和@heuristican
在全球范围内,该文化已更改为波斯文化。这会影响用于小数点分隔符(从点(。)到斜杠(/)的字符,因此以点为分隔符的小数甚至不会绑定。
代码未更改。只需输入1210/40之类的小数,而不是1210.40进行插入。问题解决了。