0

在我的应用程序中,我有一个文本框,其中包含 javascript 将值转换为货币格式。这是强制性的,不可协商的。

IE。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 无效。

我再次继承了这个应用程序并且正在学习,所以我很感激时间和耐心!

4

2 回答 2

2

像这样的电话怎么样

double.Parse(currencyValue, NumberStyles.Currency);

正如此相关链接中所建议的那样。查看NumberStyles以获取其他选项。

于 2013-08-14T06:07:55.950 回答
0

我仍然不知道如何在 MVC 中执行此操作(尽管看起来我应该使用自定义模型绑定器)我为这个问题做了一个解决方法。

 $(document).submit(function () {
        $("input[type=text].currency").each
        (
            function () {
                $(this).val($(this).val().toString().replace('(', '-').replace("$", '').replace(")", ''));
            }
        );
    });

希望这对将来的某人有所帮助。

于 2013-08-15T18:22:37.297 回答