La respuesta aceptada es grande si el tipo es un número entero, pero una gran cantidad de identificadores terminan siendo escritos como una cadena para evitar perder ceros a la izquierda. Puede formatear una cadena dividiéndola en pedazos con Substring
y hacerla reutilizable pegándola en una plantilla de pantalla.
Dentro /Shared/DisplayTemplates/
, añadir una plantilla llamada 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
puede invocar esto en un par de maneras:
solamente anote la propiedad de su modelo con un tipo de datos de la misma nombre:
<DataType("Phone")> _
Public Property Phone As String
Y luego llamar usando un simple DisplayFor
:
@Html.DisplayFor(Function(model) model.Phone)
Alternativamente, se puede especificar el DisplayTemplate desea utilizar por su nombre:
@Html.DisplayFor(Function(model) model.VimsOrg.Phone, "Phone")
Hmm, voy a perder el tiempo con esto, pero ambos Teléfono y SSN se almacenan como VARCHAR en mi base de datos, así que tendré que hacer un pequeño trabajo de pies para configurar esas propiedades como 'largo'. No hay forma de hacerlo con las propiedades tipeadas como 'cadena'? –
Una opción sería configurar un modelo de vista con propiedades de tipo long y las anotaciones de datos relacionadas y simplemente convertir el tipo entre su entidad de dominio y modelo de vista: Convert.ToInt64 ("123456789") – Jesse
lol ... downvotes de amor en respuestas que tienen más de un año de antigüedad sin comentarios correspondientes ... – Jesse