I am using Html.Label to display some data in my MVC applilcation. When I am trying to display email address it does not render properly
Model.CopyToEmail = lab@gmail.com
@Html.Label((string)(Model.CopyToEmail))
but the rendered output that i see is
com
Could anyone please suggest how to display using Html.Label
lab@gmail.com
Html.Label
takes a field to display a <label>
tag for.
It's reading your string as a nested property, and printing the name of the innermost property.
You just want to write ordinary text:
@Model.CopyToEmail
You can also call @Html.DisplayFor(m => m.CopyToEmail)
.
Using strongly typed views (passing viewmodels to views, and not using ViewBag/ViewData) is good practice, and allows you to use generic overloads of html helpers. Here is your example rewritten using strongly typed html helper
Html.LabelFor(model => model.CopyToEmail)
And label in html is not there to display data, it is there to label property being edited. You could use [DisplayAttribute] on your property, or use this overload
public static MvcHtmlString Label(
this HtmlHelper html,
string expression,
string labelText
)
//
Html.LabelFor(model => model.CopyToEmail, Model.CopyToEmailLabelText)
Can you please look at the model OR your data source to the view to return the property value: i.e. like, Html.Encode(Model.Email)