我正在编写的 ASP.NET MVC 应用程序中的十进制值有一个小问题。我有一个 NPoco 绑定到一个数据库表和一个Price
定义为十进制(9,2)的条目。这是我使用的模型条目:
[Display(Name = "Price")]
[Required]
[DisplayFormat(DataFormatString = "{0:0,##}", ApplyFormatInEditMode = true)]
public decimal Price { get; set; }
接下来我有一个淘汰赛 js 模型,它绑定了所有参数并且工作正常。其他所有字段都被正确地获取和绑定。对于价格,我有这段 html 代码:
<input type="text" required data-bind="value: Price" class="form-control input-sm" id="priceID"/>
现在,如果我用逗号插入一个值,一切正常,并且该值正确插入到数据库中(例如 15,20),但如果我使用点,则在数据库中插入一个 0.00 值。有趣的是,当我重新加载对象进行编辑时,价格的值被设置并在 html 页面内用点写入。
所以我的问题是:有没有一种方法可以接受这两种格式(用点和逗号表示)?
我认为这是不可能的,尽管您可以强制使用一个语言环境<html lang="en-US" >
和/或相应地处理输入。
每个用户的体验将根据他们的计算机区域设置而有所不同,强制分隔符为逗号可能并不明智,反之亦然。但是您可以替换或禁用所述字符的输入。
可能最优雅的方法是在服务器端处理所有内容,在语言环境之间进行转换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句