我有一个简单的asp.net mvc c#应用程序,我首先使用EF代码。
我有一个班级"学生"具有十进制类型的属性和其他类型为int的属性。我不介意为什么在没有任何数据注释的情况下十进制属性不为空?
另一个问题是,当我运行我的应用程序时,带有decimal属性的文本框检索值为170,6但是当我提交它时,它显示一个错误,表示170,6不是有效值而我有将其更改为170.6以便能够提交。
var theList = /*[[${route}]]*/
for (i = 0; i < theList.length; i++) {
var coordinate = [/*[[${theList[i].longitude}]]*/,/*[[${theList[i].latitude}]]*/];
coordinates2.push(coordinate);
}
答案 0 :(得分:3)
C#中的我不明白为什么在没有任何数据注释的情况下,decimal属性不为null
decimal
是一种值类型。它根本不能是null
。例如int
,double
,DateTime
。
170,6不是有效值,我必须将其更改为170.6才能提交。
这是文化/地区的常见问题。我正在寻找关于这个主题的一个很好的重复问题,给出一个如何解决这个问题的有用链接。
这有点棘手,因为MVC必须生成在客户端允许提交的验证代码,并且客户端可以配置另一种文化。
编辑:你可以看看这个问题,这是接受的答案: MVC/JQuery validation does not accept comma as decimal separator答案 1 :(得分:2)
对于第一个问题,decimal
是值类型,永远不能为空。如果您希望它为null,则应将其定义为decimal?
(这是Nullable<decimal>
引用类型包装器的快捷方式)。确保数据库中的相应字段也是NULL
。
对于第二个问题,您应该确保您的请求线程与您的客户端具有相同的文化。有很多方法可以做,请尝试查看此网站或谷歌。