2013-04-22 25 views
0

我有一个MVC4应用程序与unobstrusive JavaScript客户端验证。这是工作正常,除了十进制验证。我正在介绍一些奇怪而烦人的行为。客户端的十进制验证不工作,因为它应该

十进制验证只允许在小数点分隔符后有三个数字的数字。然而,我希望这与分隔符后的两个数字一起工作(或者只是任何数字都可以,因为如果我没有问题,它应该默认使用)。

所以1.222是有效的,而且不是我想要的有效期。 (1.2222无效)。

我认为

我有一个正常:

@Html.TextBoxFor(x => x.BasePrice) 

我的模型:

[Required] 
public decimal BasePrice { get; set; } 

和我的控制器:

ProductVM model = new ProductVM() 
{ 
    BasePrice = product.BasePrice 
}; 
  • 产物是实体框架4 entityobject

我也试过把;

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)] 

在我的模型中。但是这也行不通。它没有效果。

我从来没有在使用MVC时看到过这样的行为。我不知道在哪里看。任何线索?通过覆盖客户端验证小数

$.validator.methods.number = function (value, element) { 

    if(!isNaN(parseFloat(strValue))) 
    { 
     return true; 
    } 

    return false; 

} 

回答

1

我仍然不知道问题是什么,但我有一点点脏解决办法固定它。只是在我的_layout.cshtml脚本块中添加了这个。

服务器端验证将通过完整验证确保安全性仍然可用。