MVC中的十进制符号问题,C#?
我正在使用MVC 5.0
我在config中设置了文化:
我有一个模型如下:
public class MyModel { [DisplayName("NbatPersent")] [Range(0, 100)] public double NbatPersent{ get; set; } }
MVC在视图中显示NbatPersent
值,如22/5
,当我想提交表单时,表单validation器提醒我The field NbatPersent must be a number.
。 它无法将22/5
转换为22.5
如果我输入22.5就可以了,但如果属性有一个转换的值.
到/
如何将所有数字属性的文化转换为en-US
以显示22.5
类的值,而不是22/5
。
编辑:
我正在使用@Html.TextBoxFor
来显示decimal属性,因为用户应该更改它。
由于jquery.validate.js
,您将获得客户端validation错误,该错误使用以下内容validation该值(仅允许.
字符作为小数分隔符。
number: function(value, element) { return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value); },
您可以使用jquery.validate.globalize.js
插件(请参阅此文章以获取更多详细信息),或者您可以添加自己的脚本来修改validation器,例如(在jquery.validate.js
之后包含此jquery.validate.js
)
$.validator.methods.number = function (value, element) { return this.optional(element) || $.isNumeric($(element).val().replace('/', '.')); }
尝试显式设置视图格式
@Html.DisplayFor(x => string.Format("{0:0.00}", x.NbatPersent));
否则你可以为double类型编写自定义编辑器模板(〜/ Views / Shared / EditorTemplates / double.cshtml):
@model double? @Html.TextBox("", Model.HasValue ? Model.Value.ToString("#,##0.000#") : "")
然后在你看来:
@Html.EditorFor(x => x.NbatPersent)
- ASP.NET MVC TryValidateModel()修改模型时出现问题
- ASP.NET MVC:在应用程序启动时检查数据库连接
- 用于动态视图数据/表单的ASP.Net MVC编辑器模板
- 为什么PartialView会自行调用?
- 如何将DataAnnotations ErrorMessageResourceName与自定义资源解决方案一起使用
- 在asp mvc中删除Localhost URL
- 无法使用linq lambda表达式转换’System.Data.Entity.Infrastructure.DbQuery`1 ‘类型的对象
- 将RDLC数据源设置为对象的问题
- 从布局页面ASP.NET MVC3 RAZOR访问会话变量