我的ViewModel中有double类型的属性,我为它创建了一个TextBox:
Html.TextBoxFor(m => m.DoubleProperty)
有没有办法格式化文本框值(例如,应用一些String.Format魔法)?
答案 0 :(得分:3)
您可以使用[DisplayFormat]
属性修饰视图模型属性,以便指定任何格式:
[DisplayFormat(DataFormatString = "{0:###.###}", ApplyFormatInEditMode = true)]
public double? DoubleProperty { get; set; }
并在您的视图中使用EditorFor
帮助程序:
@Html.EditorFor(m => m.DoubleProperty)
另一种可能性是编写自定义编辑器模板(~/Views/Shared/EditorTemplates/MyDouble.cshtml
):
@model double?
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("###.###") : "")
并在您看来:
@Html.EditorFor(m => m.DoubleProperty, "MyDouble")
或者如果您不想在调用MyDouble
帮助程序时明确指定EditorFor
自定义编辑器模板,您还可以在视图模型上使用[UIHint]
属性:
[UIHint("MyDouble")]
public double? DoubleProperty { get; set; }