我有一个强类型的视图,其模型的类型为LogOnModel
。 LogOnModel
具有类似这样的属性:
[Required(ErrorMessage = "Please enter your password")]
[DataType(DataType.Password)]
[Display(Name = "Password", Description = "Your secreet password")]
public string Password { get; set; }
所有这些都有Display
anotation Display.Descripion
属性集。
我想创建HtmlHelper
扩展方法,输出<span>
包含Display.Description
属性的值。
例如,如果我调用我的扩展方法DescriptionFor
而不是此代码:
<%: Html.DescriptionFor(m => m.Password) %>
应该生成以下html:<span>Your secreet password</span>
感谢所有想法和代码。
答案 0 :(得分:1)
请参阅此问题:Extract Display name and description Attribute from within a HTML helper
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; // will equal "Your secreet password"
var name = metadata.DisplayName; // will equal "Password"
// TODO: do something with the name and the description
...
}
MSDN:ModelMetadata Class