MVC3 - 3 decimal places on type double with leading zero

后端 未结 3 1645
萌比男神i
萌比男神i 2020-12-03 14:38

I have a field for weight in Kgs (type double or use something else??). In edit view I would like the user to enter numbers to the thousandth place<

3条回答
  •  借酒劲吻你
    2020-12-03 15:08

    You could use data annotations on your view model:

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

    and in your view

    @Html.EditorFor(x => x.Weight)
    

    will properly format the value in the input field.

    Another possibility is to write a custom editor template for the double type (~/Views/Shared/EditorTemplates/double.cshtml):

    @model double?
    @Html.TextBox("", Model.HasValue ? Model.Value.ToString("#,##0.000#") : "")
    

    and then in your view:

    @Html.EditorFor(x => x.Weight)
    

    or if you don't want to override all templates for all double types in your application you could put this into some custom template location like ~/Views/Shared/EditorTemplates/MyFormattedDouble.cshtml and then in your view:

    @Html.EditorFor(x => x.Weight, "MyFormattedDouble")
    

    Personally I prefer the first approach which uses data annotations to control the format of the double values.

提交回复
热议问题