如何获得“;描述”;属性而不是“;name”;模型的属性-(MVC asp.net)
本文关键字:属性 MVC net asp 描述 何获得 name 模型 | 更新日期: 2023-09-27 18:27:43
我有一个模型和一个字段。。。等等。这是微不足道的。但是,我需要从我的视图中获得字段的"Description"属性和您的"Name"属性。使用@Html。。。很明显,用"DisplayNameFor"可能会返回这个值。但是,如何获得"描述"属性?没有像@Html.DisplayDescription这样的帮助程序?有可能得到这个吗?
[Column("abc")]
[Display(Description = "The Description", GroupName = "The Group", Name = "The Name")]
public string field { get; set; }
谢谢你的帮助。抱歉英语不好
您可以从元数据中获得它:
@model MyViewModel
@{
var description = ModelMetadata.FromLambdaExpression<MyViewModel, string>(x => x.field, ViewData).Description;
}
@description
或者,如果你和我一样,发现这个非常可怕的代码要在视图中编写,你可以将其封装在一个可重用的助手中:
public static class HtmlExtensions
{
public static IHtmlString DescriptionFor<TModel, TValue>(
this HtmlHelper<TModel> html,
Expression<Func<TModel, TValue>> expression
)
{
var metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
var description = metadata.Description;
return new HtmlString(description);
}
}
所以在你看来,你可以这样使用:
@model MyViewModel
@Html.DescriptionFor(x => x.field)