【问题标题】:How to convert decimal field value to currency in mvc如何在mvc中将十进制字段值转换为货币
【发布时间】:2015-02-02 12:31:02
【问题描述】:

在我看来,我有几个编辑器,比如关注

@Html.EditorFor(Model => Model.CashBalance)

现在,当我在该编辑器中输入任何值时,该值应在文本框更改事件中更改为货币值

例如: 123 应显示为 123.00 14.35 应显示为 14.35

我想以通用方式执行此操作,这样我就不需要在每个地方都更改它,因为我的项目有很多编辑器,它们接受用户的输入。

因为我对所有这些文本框都使用了 EditorTemplate,所以我想自己处理这里。

我的 EditorTemplate 是 decimal.cshtml,它看起来像下面这样

@model decimal?
@{
    string value = (Model.HasValue == false || Model.Value == 0) ? "" : string.Format("{0:0.00}", Model.Value);
}

@Html.TextBox(
    "", 
    value,
    new { @class="amountRightAlign"}
)

我可以在这里编写任何 textchange 事件,以便它影响任何有十进制数据类型的地方吗?

提前致谢?

【问题讨论】:

  • 您需要使用 javascript/jquery 并处理 .change() 事件。它与使用EditorTemplate 无关。它只需要@Html.TextBoxFor(m => m, "{0:0.00}", new { @class="amountRightAlign"})

标签: asp.net-mvc asp.net-mvc-3 mvc-editor-templates editortemplates


【解决方案1】:

Html 助手是用于生成发送给客户端的 html 的服务器端代码。为了与浏览器中的用户更改进行交互,您需要使用 javascript 来处理事件。

在您的情况下,您不需要EditorTemplate。相反,只有TextBoxFor()overload 接受格式字符串

@Html.TextBoxFor(m => m.CashBalance, "{0:0.00}", new { @class="decimalnumber" })

然后在视图中,或者在单独的脚本文件中

$('.decimalnumber').change(function () {
  var num = new Number($(this).val());
  if (isNaN(num)) {
    // Its not a valid number
    return;
  }
  $(this).val(num.toFixed(2));
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多