客户端十进制验证不能正常工作

时间:2013-04-22 13:45:39

标签: asp.net-mvc validation view unobtrusive-javascript

我有一个MVC4应用程序,具有不引人注目的javascript客户端验证。除十进制验证外,此工作正常。我在唠叨一些奇怪而烦人的行为。

十进制验证仅允许小数分隔符后面带有三个数字的数字。但是我希望这可以在分隔符之后使用两个数字(或者只是任何数字是正常的,因为如果我是正确的,它应该默认执行)。

所以1.222是有效的,1.22并不是因为我不是有效的。 (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时,我从未见过这样的行为。我不知道在哪里看。有线索吗?

1 个答案:

答案 0 :(得分:1)

我仍然不知道问题是什么,但我用一点点的解决方法修复了它:

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

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

    return false;

}

通过覆盖客户端十进制验证。刚刚在我的_layout.cshtml的脚本块中添加了它。

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