在我的应用程序中,我有一个文本框,其中javascript将值转换为货币格式。这是强制性的,不可协商的。
即。 5.50变为5.50美元,-5.50变为(5.50美元)
当我尝试保存时,我收到验证错误,因为$ 5.50对ViewModel无效
//View file
@Html.CustomEditorFor(m => m.CurrentTotal, "currency")
//Controller file. First thing in the controller method called
if (ModelState.IsValid)
{
//... not getting to this
}
//ViewModel file
[Display(Name = "Current Total:")]
public decimal CurrentTotal
{
get
{
return PropertyDictionary.GetDecimal("CurrentTotal", 0).Value;
}
set
{
PropertyDictionary.SetDecimal("CurrentTotal", value);
}
}
我想知道如何删除非数字,不包括“。”在它进入模型之前从文本框中导致ModelState无效。
我再次继承了这个应用程序并且正在学习,所以我很感激时间和耐心!
答案 0 :(得分:2)
如
之类的电话怎么样?double.Parse(currencyValue, NumberStyles.Currency);
正如related link中所述。查看NumberStyles了解更多选项。
答案 1 :(得分:0)
我仍然不知道如何在MVC中执行此操作(虽然看起来我应该使用自定义模型绑定器)我已经解决了这个问题。
$(document).submit(function () {
$("input[type=text].currency").each
(
function () {
$(this).val($(this).val().toString().replace('(', '-').replace("$", '').replace(")", ''));
}
);
});
希望这有助于将来。