How do I display the DisplayAttribute.Description attribute value?
asp.net, asp.net-mvc, c#
Solution
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. :)
Problem
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!"??