.Net MVC では、エディター テンプレートを使用して HTML を出力します。したがって、ビューでは以下のように記述し、文字列用のエディター テンプレート (説明は文字列オブジェクト) は、文字列型の正しい HTML とコントロールを出力します。
@Html.EditorFor(model => model.Entity.Description)
ビュー、つまり model.Entity.Description で使用したラムダ式を使用\再作成できるエディター テンプレートを作成したいと考えています。エディター テンプレートでは、この場合の説明でプロパティ名を取得できますが、ビューで使用したエディター テンプレートでラムダ式を取得できるようにしたいと考えています。つまり、モデル => model.Entity.Description エディター テンプレートの例以下です-MYLAMBDAEXPRESSIONHEREを関連する式に動的に置き換えたい、つまりmodel => model.Entity.Description:
@model IDictionary Fields //Or some object that also contains the lambda expression
@using System.Collections;
@using System.Collections.Generic;
@using Mallon.Core.Artifacts;
@{
var fieldName = ViewData.TemplateInfo.HtmlFieldPrefix;
FieldAccessOptionality access = (FieldAccessOptionality)Model[fieldName];
switch(access)
{
case FieldAccessOptionality.None:
break;
case FieldAccessOptionality.Mandatory:
<div class="editor-label">
@Html.LabelFor(MYLAMBDAEXPRESSIONHERE)
</div>
<div class="editor-field">
@Html.EditorFor(MYLAMBDAEXPRESSIONHERE)
@Html.ValidationMessageFor(MYLAMBDAEXPRESSIONHERE)
</div>
break;
}
}