带MVC的HTML 5数字输入不显示小数

时间:2017-04-13 12:27:10

标签: c# asp.net-mvc html5 razor html5-input-number

我试图在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; }

2 个答案:

答案 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/