C# 如何从强类型自定义HtmlHelper访问模型中的属性属性属性?
我有一个强类型的视图,它的模型是C# 如何从强类型自定义HtmlHelper访问模型中的属性属性属性?,c#,asp.net,asp.net-mvc,html-helper,C#,Asp.net,Asp.net Mvc,Html Helper,我有一个强类型的视图,它的模型是LogOnModel。该LogOnModel具有类似以下属性: [Required(ErrorMessage = "Please enter your password")] [DataType(DataType.Password)] [Display(Name = "Password", Description = "Your secreet password")] public string Password { get; set; } 它们都具有Displ
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
扩展方法,该方法将输出包含Display.Description
属性值的
例如,如果我调用扩展方法DescriptionFor
,那么下面的代码:
<%: Html.DescriptionFor(m => m.Password) %>
m.Password)%%>
应生成以下html:您的secreet密码
感谢您提供的所有想法和代码。请参见以下问题:
public静态MvcHtmlString描述(
这是我自己,
表情
)
{
var metadata=modelmetada.FromLambdaExpression(表达式,self.ViewData);
var description=metadata.description;//将等于“您的secreet密码”
var name=metadata.DisplayName;//将等于“Password”
//TODO:对名称和描述进行处理
...
}
MSDN:如果您在我的问题中有不清楚的地方留下评论,我将非常高兴。非常感谢。
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
...
}