【发布时间】:2019-10-23 01:35:23
【问题描述】:
我正在编写的 ASP.NET MVC 应用程序中的十进制值有一点问题。我有一个 NPoco 绑定到一个数据库表和一个定义为十进制(9,2)的Price 条目。这是我使用的模型条目:
[Display(Name = "Price")]
[Required]
[DisplayFormat(DataFormatString = "{0:0,##}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }
接下来我有一个knockout js模型,它绑定了所有的参数并且工作正常。每个其他字段都被正确地占用和绑定。我有这段 html 代码的价格是多少:
<input type="text" required data-bind="value: Price" class="form-control input-sm" id="priceID"/>
现在,如果我用逗号插入一个值,一切正常,并且该值正确插入到数据库中(例如 15,20),但如果我使用点,则在数据库中插入一个 0.00 值。有趣的是,当我重新加载对象以对其进行编辑时,价格的值被设置并用 html 页面内的点写入。
所以我的问题是:有没有一种方法可以同时接受这两种格式(用点和逗号表示)?
【问题讨论】:
-
现在我想用10000的价格。我的意思是一万还是一万?
-
我建议您将 UI 文化与后端文化分开以避免此问题。请看一下这个博客:weblog.west-wind.com/posts/2014/mar/27/….
标签: sql-server asp.net-mvc knockout.js