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
    ...
}