用户提交表单时,未识别ASP.NET MVC3千分离器



我正在创建一个ASP.NET MVC3应用程序,并且我的表格必须在其中输入价格。为了改善用户体验,我想实现一千个分离器。我已经做到了,您可以在此小提琴上看到它可以正常工作

但是

此价格字段是模型的一部分,在我的模型文件中被声明为

public decimal? Price {get; set;}

当我提交表格时,Price总是null。但是,如果我删除我的千分隔符,则它以形式输入的值。这是因为Price似乎被解释为字符串,而不是小数点,因此MVC与这两个属性不匹配(我想)。

那么,如何强迫MVC将我的价值识别为正确的小数点,并以用户输入的价格提交模型?

感谢您的帮助。

我相信,进行以下操作会更容易:您可以在表单上创建一个隐藏的字段,然后存储没有分离器的数字,也可以删除分隔符提交表格之前。

示例:

$("#target-form").submit(function(event) {
  value_with_separators = $('.thousandSeparator').val();
  clean_value = value_with_separators.replace(/s+/g, '');
  $('.thousandSeparator').val(clean_value);
});

还有另一种方法。您可以实现自定义ModelBinder并在此处执行所需的转换。这是指向代码样本相关问题的链接。

希望它有帮助!

最新更新