2012-07-18 16 views
6

Estoy usando Html.Label para mostrar algunos datos en mi ubicación MVC. Cuando estoy tratando de mostrar la dirección de correo electrónico no se muestra correctamenteHtml.La etiqueta para mostrar la dirección de correo electrónico

Model.CopyToEmail = [email protected] 
@Html.Label((string)(Model.CopyToEmail)) 

pero el resultado representado que veo es

com 

Podría alguien por favor sugerir cómo mostrar utilizando Html.Label

[email protected] 
+0

puede publicar su código de vista, así como su código de controlador que rellena su modelo – mreyeros

Respuesta

12

Html.Label toma un campo para mostrar una etiqueta <label> para.
Está leyendo su cadena como una propiedad anidada e imprimiendo el nombre de la propiedad más interna.

lo que desea es escribir el texto ordinario:

@Model.CopyToEmail 

También puede llamar @Html.DisplayFor(m => m.CopyToEmail).

1

El uso de vistas fuertemente tipadas (pasar modelos de vista a vistas, y sin usar ViewBag/ViewData) es una buena práctica, y le permite usar genéricos sobrecargas de helpers html. Aquí está el ejemplo reescrito usando inflexible ayuda HTML

Html.LabelFor(model => model.CopyToEmail) 

y la etiqueta en html no está ahí para mostrar datos, que está ahí para etiquetar propiedad que está siendo editado. Se podría utilizar [DisplayAttribute] en su propiedad, o utilizar this overload

public static MvcHtmlString Label(
    this HtmlHelper html, 
    string expression, 
    string labelText 
) 

//

Html.LabelFor(model => model.CopyToEmail, Model.CopyToEmailLabelText) 
+1

Eso no es lo que quiere. – SLaks

+0

@SLaks cierto, edité mi respuesta – archil

1

puede usted por favor mirar el modelo o el origen de datos con el fin de devolver el valor de la propiedad: es decir, como, Html.Encode(Model.Email)

+0

Razor codifica automáticamente. Y la codificación no haría esto de todos modos. – SLaks

Cuestiones relacionadas