我遇到了以下问题。在我的数据库中,我有一个类型为“float”的属性。当我使用Entity Framework创建模型时,相同的属性由“double”字段表示。
这就是事情。在视图中,如果我编写例如“23,22”,则数据注释表明它不是数字,如果我写“23.22”则通过验证但属性的值在到达控制器时为空。
知道为什么会这样吗?我一直在寻找信息,但没有任何用处。
提前致谢!
编辑:我添加了使用该属性的代码。
在模型类中,它是这样的:
public class TestObject{
....
public Nullable<double> attribute { get; set; }
....
}
在视图中:
@Html.EditorFor(m => m.attribute)
在控制器中:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Test(TestObject test)
{
....
return View();
}
如果我写“23.22”,当我访问控制器中的属性值时,它为空。
答案 0 :(得分:1)
作为一种可能的解决方案,您可以更改jQuery文化以允许逗号分隔符而不是点。在这种情况下,double将正确传递。
//For example German culture uses comma. Just add this line:
<script>
Globalize.culture("de-DE");
</script>