【发布时间】:2016-05-06 13:07:06
【问题描述】:
我目前遇到了一个愚蠢的问题,尝试了多种解决方案,但仍然无法正常工作......
我目前在一个 ASP.NET MVC 项目中,我的一个类需要小数作为类型,所以我这样创建它:public decimal level { get; set; }
然后当我需要创建一个包含此属性的新对象时,我会在我的视图中使用它:<input type="number" name="level" step="any" min="1"/>
我也尝试使用 editorFor,但在这两种情况下,我都收到了这条消息:
值“2.1”对级别无效。
我尝试过使用 2.1 或 2,1(我的文化是 fr-FR),但两者都不起作用并发送完全相同的错误消息...有人可以解释一下为什么吗?
提前致谢,祝您有美好的一天!
【问题讨论】:
-
fr-FR 的小数分隔符不是逗号吗?
-
2,1对您的服务器有效,但如果您启用了客户端验证,那么您将收到该错误,因为 jquery.validate 验证基于.的数字作为小数分隔符。您需要重新配置验证器或使用jquery.globalize -
@Stephen Muecke 我已将
Html.EnableClientValidation(false);放在我的页面上,但它仍然显示相同的内容:s -
如果客户端验证被禁用,则表单将提交,您将点击控制器 POST 方法。如果它仍然无效,则意味着您的服务器文化不接受
,作为小数分隔符。你确定它在你的web.config.cs文件中是fr-FR吗? -
@StephenMuecke 是的,我确定!我只是做了更多的测试,现在它正在关闭客户端验证;)谢谢帮助我!
标签: c# asp.net asp.net-mvc razor