在视图中显示钱的问题
Issue displaying money on view
我有以下
public decimal? Price {get;set;}
当我在视图的文本框(下面的文本框)中输入 3000.00 时
<div class="form-group">
<label class="col-lg-3 control-label no-padding-right">Price</label>
<div class="col-lg-5">
@Html.ValidationMessageFor(m => m.Price)
<div class="input-group">
<span class="input-group-addon">£</span>
@Html.TextBoxFor(m => m.Price, new { @class = "form-control", type = "text", id = "txtPrice", onkeypress = "return isNumberKey(event)" })
</div>
</div>
<label class="col-lg-4 control-label" style="text-align: left">Decimal format</label>
所以它看起来像这样
它在数据库中保存为预期的 3000.00,但是当我 return 返回视图编辑它时,文本框中的值为 3000.0000
我已经尝试了这里的一些解决方案
Remove trailing zeros of decimal
我认为我遇到的问题是视图上的字段是小数类型而不是字符串,所以我不确定如何格式化这个小数以删除尾随零,所以它看起来像上图
您需要使用接受格式字符串的 TextBoxFor
的重载
@Html.TextBoxFor(m => m.Price, "{0:0.00}", new { @class = "form-control", type = "text", id = "txtPrice", onkeypress = "return isNumberKey(event)"})
旁注:
- 删除
type="text"
。 html 助手已经为您添加了这个(添加
为什么你不只使用默认的 id
呈现的原因?
助手,即 id="Price"
?).
- 使用 Unobtrusive Javascript 而不是污染您的标记
有行为 - 例如
$('#txtPrice').keypress(...
我有以下
public decimal? Price {get;set;}
当我在视图的文本框(下面的文本框)中输入 3000.00 时
<div class="form-group">
<label class="col-lg-3 control-label no-padding-right">Price</label>
<div class="col-lg-5">
@Html.ValidationMessageFor(m => m.Price)
<div class="input-group">
<span class="input-group-addon">£</span>
@Html.TextBoxFor(m => m.Price, new { @class = "form-control", type = "text", id = "txtPrice", onkeypress = "return isNumberKey(event)" })
</div>
</div>
<label class="col-lg-4 control-label" style="text-align: left">Decimal format</label>
所以它看起来像这样
它在数据库中保存为预期的 3000.00,但是当我 return 返回视图编辑它时,文本框中的值为 3000.0000
我已经尝试了这里的一些解决方案
Remove trailing zeros of decimal
我认为我遇到的问题是视图上的字段是小数类型而不是字符串,所以我不确定如何格式化这个小数以删除尾随零,所以它看起来像上图
您需要使用接受格式字符串的 TextBoxFor
的重载
@Html.TextBoxFor(m => m.Price, "{0:0.00}", new { @class = "form-control", type = "text", id = "txtPrice", onkeypress = "return isNumberKey(event)"})
旁注:
- 删除
type="text"
。 html 助手已经为您添加了这个(添加 为什么你不只使用默认的id
呈现的原因? 助手,即id="Price"
?). - 使用 Unobtrusive Javascript 而不是污染您的标记
有行为 - 例如
$('#txtPrice').keypress(...