ユーザーがラベルにアクセスできない場合に、特定の条件下でラベルをレンダリングするドロップダウンボックスを作成しようとしています。
これまで私はこれを思いついた
public static MvcHtmlString ReadOnlyCapableDropDownFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
IEnumerable<SelectListItem> selectList,
bool enabled,
object htmlAttributes
)
{
return !enabled ? htmlHelper.DisplayFor(expression)
: htmlHelper.DropDownListFor(expression, selectList, htmlAttributes);
}
これにより、有効になっている場合はラベルが正しくレンダリングされ、trueの場合はドロップダウンが表示されます。問題は、ラベルのテキストが、ドロップダウンに通常表示されるテキストではなく、選択した選択リスト値のIDであるということです。
の表示の値に式を使用しているので、これは理にかなっています。この式を使用して、データ値ではなく選択リストアイテムのテキスト値を取得するにはどうすればよいですか?