如何在 MVC 的 TextBoxFor 中限制为 2 位小数?

How can limit to 2 decimals in TextBoxFor in MVC?

我只想要小数点后2位

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

需要这样的输出:

56.23

456.20

1.21

像那样..

我建议您像这样在客户端格式化您的小数:

在你的ViewModel中:

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }

然后在您的视图中使用 EditorFor:

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

当此值发布到您的 Controller 时,只需 trim 到 2 nums。

如果您需要验证,请使用正则表达式:

[RegularExpression(@"^\d+\.\d{0,2}$")] //this line
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }

在视图中

@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }, new { Value=String.Format("{0:0.##}",Model.Viewers) })

在控制器中你也可以格式化你的 String.Format("{0:0.##}",Object.viewers)

Object- 表示传递给 View 的模型(包含字段 Viewers)

希望对您有所帮助

我会在我的视图中使用编辑器模板。我将定义专门针对给定视图的要求定制的视图模型(在本例中将其限制为 2 位小数):

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers{ get; set; }

或者你可以简单地使用正则表达式和像

这样的模型
[RegularExpression(@"^\d+.\d{0,2}$")]
public decimal Viewers{ get; set; }

然后在 html:

@Html.EditorFor(m => m.Viewers) 

TextBoxFor()也将使用正则表达式

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

如果我用。

String.Format("{0:0.00}", 123.4567);     

所以结果:

 // "123.46"

所以你可以试试这个

@Html.TextBoxFor(m => String.Format("{0:0.00}", m.Viewers) , new { @tabindex = 7 })

  $("#Viewers").change(function (e) {

            var num = parseFloat($(this).val());
            $(this).val(num.toFixed(2));
});
   @Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })

谢谢大家的回复!!! :)