次のようなモデルベースのDescriptionFor
ヘルパーがあります。
public static HtmlString DescriptionFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression) where TModel : class
{
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
return new HtmlString(metaData.Description.ToStringOrEmpty());
}
これはDataAnnotations.DisplayAttribute
(具体的にはDescription
パラメータ)をキーオフし、スムーズに動作します。
現在、モデルIEnumerable<foo>
にループしている があり、列挙型メンバーごとに s を持つfoo
列挙型がある場合があります。DisplayAttribute
すべてではありませんが、ほとんどのDisplayAttribute
属性がDescription
プロパティを提供しており、次のようにループで公開したいと考えています。
@foreach(var fooObject in Model.foos){
@Html.Description(fooObject, x=>x.fooEnumVal)
}
...ここに、各foo
オブジェクトの列挙値の説明が表示されます。
モデル ヘルパーとあまり似ていないことがすぐにわかりました。誰かがこれについて正しい方向に私を向けることができますか?