如何在 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 })
谢谢大家的回复!!! :)
我只想要小数点后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 })
谢谢大家的回复!!! :)