model无法使用group separator将字符串解析为long类型

时间:2012-07-23 05:17:11

标签: jquery asp.net-mvc asp.net-mvc-3 number-formatting

我认为这应该很容易但是我困惑了2天。

我使用jquery.numberformatter-1.2.3.min.js来格式化和解析用户输入。

$("#Qty").blur(function () { 
    $(this).parseNumber({ format: "#,###", 
                          locale: "us" }); 
    $(this).formatNumber({ format: "#,###", 
                           locale: "us" }); 
});

我有一个要在视图上显示的模型字段

[Required]        
public long? Qty { get; set; }

<div class="display-field">@Html.TextBoxFor(model => model.Qty)</div> 

但是,当使用输入“243,000”时,mvc3控制器操作始终认为它无效。

我尝试使用数据注释格式属性而没有运气。

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

如何让MVC在我的操作中自动格式化用户输入并使模型状态有效?

jQuery numberformatter似乎停止了默认的MVC模型格式化程序来解释字符串。

1 个答案:

答案 0 :(得分:0)

试试这个:

$("#Qty").blur(function () { 
    $(this).parseNumber({ format: "#.###", 
                          locale: "us" }); 
    $(this).formatNumber({ format: "#.###", 
                           locale: "us" }); 
});

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

这可能是区域设置问题。如果这解决了你的问题,请告诉我,我们会从那里开始。