接受的答案是偉大的,如果該類型是一個整數,但是很多id被打成一個字符串來防止丟失前導零。您可以將一個字符串拆分爲Substring
,並通過將其粘貼到DisplayTemplate中使其可重用。
裏面/Shared/DisplayTemplates/
,添加模板命名Phone.vbhtml
:
@ModelType String
@If Not IsNothing(Model) AndAlso Model.Length = 10 Then
@<span>@String.Format("({0}) {1}-{2}",
Model.Substring(0, 3),
Model.Substring(3, 3),
Model.Substring(6, 4))</span>
Else
@Model
End If
您可以在幾種方法調用此:
只是相同的數據類型批註模型中的特性名稱:
<DataType("Phone")> _
Public Property Phone As String
然後使用一個簡單的DisplayFor
:
@Html.DisplayFor(Function(model) model.Phone)
或者,您可以指定DisplayTemplate你想通過名字來使用:
@Html.DisplayFor(Function(model) model.VimsOrg.Phone, "Phone")
嗯,我要去更動這一點,但是這兩個電話和SSN作爲VARCHAR存儲在我的數據庫中,所以我將不得不做一些步驟來讓這些屬性設置爲'long'。沒有辦法用類型爲'string'的屬性來做到這一點? –
一個選擇,將設置一個視圖模型與屬性類型和相關的數據註釋,並簡單地轉換您的域實體和視圖模型之間的類型:Convert.ToInt64(「123456789」) – Jesse
lol ... love downvotes on答案是超過一年沒有相應的評論... – Jesse