我希望小数点后只有2位数。
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
需要这样的输出:
56.23
456.20
1.21
像那样..答案 0 :(得分:1)
我建议您在客户端格式化小数,如下所示:
在ViewModel
:
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }
在您的视图上使用EditorFor
:
@Html.EditorFor(m => m.Viewers, new { @tabindex = 7 })
当此值发布到您的Controller
时,只需将其修改为2个。
如果您需要验证,请使用Regex:
[RegularExpression(@"^\d+\.\d{0,2}$")] //this line
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }
答案 1 :(得分:1)
在视图中
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }, new { Value=String.Format("{0:0.##}",Model.Viewers) })
在控制器中你也可以格式化你的String.Format(" {0:0。##}",Object.viewers)
Object-意味着模型(包含字段Viewers),传递给View
希望这是有帮助的
答案 2 :(得分:1)
我会在视图中使用编辑器模板。我将定义视图模型,这些模型是根据给定视图的要求专门定制的(在这种情况下将其限制为2位小数):
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers{ get; set; }
或者你可以简单地使用像
这样的模型的正则表达式[RegularExpression(@"^\d+.\d{0,2}$]
public decimal Viewers{ get; set; }
然后:
@Html.EditorFor(m => m.Viewers)
或TextBoxFor()
也适用于正则表达式
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
答案 3 :(得分:1)
如果我使用。
String.Format("{0:0.00}", 123.4567);
结果:
// "123.46"
所以你可以试试这个
@Html.TextBoxFor(m => String.Format("{0:0.00}", m.Viewers) , new { @tabindex = 7 })
答案 4 :(得分:0)
$("#Viewers").change(function (e) {
var num = parseFloat($(this).val());
$(this).val(num.toFixed(2));
});

@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })

感谢大家回复我! :)