I have a model class, with a property like this:
[Display(Name = "Phone", Description="Hello World!")] public string Phone1 { get; set; }
Displaying a label and rendering a textbox for input in my view is pretty easy:
@Html.LabelFor(model => model.Organization.Phone1) @Html.EditorFor(model => model.Organization.Phone1) @Html.ValidationMessageFor(model => model.Organization.Phone1)
But how do I render the value of the Description annotation attribute, i.e. "Hello World!"??
I ended up with a helper like this:
using System; using System.Linq.Expressions; using System.Web.Mvc; public static class MvcHtmlHelpers { public static MvcHtmlString DescriptionFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression) { var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData); var description = metadata.Description; return MvcHtmlString.Create(string.Format(@"<span>{0}</span>", description)); } }
Thanks to those who led me in the right direction. :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With