2011-09-15 56 views
0

我有double類型的財產在我的ViewModel和我爲它創建一個文本框:格式強類型元素值

Html.TextBoxFor(m => m.DoubleProperty) 

有什麼辦法來格式化文本框的值(例如,應用一些String.Format魔術)?

回答

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") 

,或者如果你不想調用EditorFor幫手,你也可以使用[UIHint]屬性上您的視圖模型時明確指定MyDouble自定義編輯器模板:

[UIHint("MyDouble")] 
public double? DoubleProperty { get; set; }