ViewData.ModelState.IsValid为false,因为Mvc无法解析用逗号分隔数百和数千的值

我有int?类型的字段int?

在视图上我使用jquery插件将3,463,436值与逗号分开,如下所示: 3,463,436 = 3463436 – 它必须是int值。

但是在Form subbmit上我得到错误“值’3,463,436’对于Maximum Contiguous无效。”

任何建议? 谢谢。

在ASP.NET MVC中,一个选项是实现一个自定义的ModelBinder ,它从提交的值中删除逗号。 即实现DefaultModelBinder的子类

以下是如何为decimal数据类型的小数分隔符执行此操作:

如何在ASP.NET MVC控制器中设置小数分隔符?

对于int数据类型的千位分隔符,您将需要类似的东西。

比删除逗号更好的解决方案是使用.NET内置的NumberStyles解析。

 public class MyBinder : DefaultModelBinder { public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { string key = bindingContext.ModelName; var v = ((string[])bindingContext.ValueProvider.GetValue(key).RawValue)[0]; int outPut; if (int.TryParse(v, NumberStyles.AllowThousands, new CultureInfo("en-US"), out outPut)) return outPut; return base.BindModel(controllerContext, bindingContext); } } ModelBinders.Binders.Add(typeof(int), new MyBinder());