我试图在MVC中使用输入数字,它正确接受逗号(我在文化中使用逗号作为小数分隔符)并且MVC使用我制作的自定义绑定器接受它。该值正确保存在数据库中,然后返回。
问题是,当将小数值(看起来像0.231)传递给数字控件时,我想它会尝试用逗号将其格式化为我的文化并且不起作用,所以什么也没有出现。
活页夹在返回服务器时起作用,但是在返回控件时是否需要其他东西才能使其返回页面?
我在剃须刀视图中的控制权:
@Html.EditorFor(model => model.DecimalValueForExample, new { htmlAttributes = new { @class = "form-control", @type = "number", @step = "any", @min = "0.001", autocomplete = "off" } })
viewmodel中的我的属性:
[Display(Name = "DecimalValueForExample", ResourceType = typeof(Properties.Resources))]
[DisplayFormat(DataFormatString = "{0:0.###}", ApplyFormatInEditMode = true)]
[Range(0.001, double.MaxValue, ErrorMessageResourceName = "RangeErrorMessage", ErrorMessageResourceType = typeof(Properties.Resources))]
[Required]
public decimal DecimalValueForExample{ get; set; }
答案 0 :(得分:1)
过去这是一个浏览器合规性问题,浏览器和操作系统之间的支持程度各不相同。 我发现的最后一张图表大约有12个版本落后于Chrome,当时它不支持Windows上的逗号。 HTML5 number inputs – Comma and period as decimal marks
有一些JS解决方法也出现了, html tag input of type=”number” and culture based decimal separator
答案 1 :(得分:1)
没有任何效果,尤其是在多个浏览器中。所以答案是使用微调控件,我使用http://www.virtuosoft.eu/code/bootstrap-touchspin/