您好我为价格定义了一个十进制字段,如下所示:
[Required(ErrorMessage = "Asking Price/Rent is required.")]
[Display(Name = "Asking Price/Rent*")]
[DisplayFormat(DataFormatString = "{0:N0}", ApplyFormatInEditMode = true)]
public decimal Price {get; set;}
在我看来,我有一个编辑器字段,如下所示:
<div class="editor-label">
@Html.LabelFor(model => model.Property.Price)
@Html.EditorFor(model => model.Property.Price)
</div>
我在web.config中设置了以下全球化文化
<globalization uiCulture="en-GB" culture="en-GB" />
如果我不使用逗号,一切正常。即。
50.00保存并显示为50 500000保存并显示为500,000
但是,如果我尝试输入500,000,即使用逗号,则会出现以下错误:
The value '500,000' is not valid for Asking Price/Rent*.
我希望编辑器字段能够使用逗号,因为我希望大多数用户在将Price放入表单时使用逗号。
如何在输入数字时允许使用逗号?
答案 0 :(得分:0)
我有一个可能适用于您的案例的解决方案首先我们将使用一些JavaScript来帮助我们
保留上面实施的文本框,并在其旁边添加标签空白标签
使用javascript我们解析在文本框中输入的数字,并使用逗号将其转换为新格式,以便显示
通过这种方式,您可以获得添加数据注释验证的全部功能,并显示格式化为用户的数字
以下链接也帮助了您
http://weblogs.asp.net/scottgu/archive/2010/06/10/jquery-globalization-plugin-from-microsoft.aspx
答案 1 :(得分:0)
你必须改变
[DisplayFormat(DataFormatString = "{0:N0}", ApplyFormatInEditMode = true)]
到
[DataType(DataType.Currency)]
问题解决了!