MVC3 - 类型为double的3个小数位,前导零

Par*_*ar6 14 asp.net-mvc-3

我有一个体重为Kgs的字段(类型为double或使用其他东西?).在编辑视图中,我希望用户输入数字到千分之一.在显示视图中,我希望Kgs看起来像560.250

试着学习MVC3 + Razor.愿意探索JQuery,使用正则表达式,验证器,视图模板,查看模型......

基于约定的MVC的"魔力"需要习惯.对于使用哪种方法感到困惑.

预先感谢您的帮助.

Dar*_*rov 32

您可以在视图模型上使用数据注释:

[DisplayFormat(DataFormatString = "{0:#,##0.000#}", ApplyFormatInEditMode = true)]
public double? Weight { get; set; }
Run Code Online (Sandbox Code Playgroud)

并在你看来

@Html.EditorFor(x => x.Weight)
Run Code Online (Sandbox Code Playgroud)

将正确格式化输入字段中的值.

另一种可能性是为double类型(~/Views/Shared/EditorTemplates/double.cshtml)编写自定义编辑器模板:

@model double?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("#,##0.000#") : "")
Run Code Online (Sandbox Code Playgroud)

然后在你看来:

@Html.EditorFor(x => x.Weight)
Run Code Online (Sandbox Code Playgroud)

或者如果您不想覆盖应用程序中所有双重类型的所有模板,您可以将其放入某个自定义模板位置~/Views/Shared/EditorTemplates/MyFormattedDouble.cshtml,然后在您的视图中:

@Html.EditorFor(x => x.Weight, "MyFormattedDouble")
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢第一种使用数据注释来控制double值格式的方法.