【问题标题】:Decimal editor issue ASP.NET MVC十进制编辑器问题 ASP.NET MVC
【发布时间】: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


【解决方案1】:

十进制应该是 2.1M。您必须在数字后面加上字母 M。如果声明为float,应该是2.1F

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多