数年前に作成した HtmlHelpers から移動して、開発中にマークアップされたカスタム Taghelper があります...
<gdropdown asp-for="Type_ID" asp-items="cboType_SelectOne"></gdropdown>
すべて正常に動作し、この出力は次のようになります...
<div>
<select id="Type_ID" name="Type_ID">
<option value=-1> - Select One - </option>
<option value=9>Aux. Ext. Device</option>
<option value=28>Backup Device</option>
...
</select>
</div>
現在、次のように出力に追加する独自の検証 SPAN を作成するためのヘルプを探しています...
<div>
<select id="Type_ID" name="Type_ID">
<option value=-1> - Select One - </option>
<option value=9>Aux. Ext. Device</option>
<option value=28>Backup Device</option>
...
</select>
<span class="field-validation-valid" data-valmsg-replace="true" data-valmsg-for="Type_ID">
<span for="Type_ID">Req!</span>
</span>
</div>
とにかく、その SPAN の基本的な作成はできますが、追加/編集中のフィールドのデータ注釈にアクセスできません。
HtmlHelpers を使用すると、出力を自動的に作成するために、次のように htmlHelper.ValidationMessageFor() を使用できます...
public static MvcHtmlString CustomLookupFor2<TModel, TValue>(this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TValue>> exp, string url, bool includeValidation, object options)
{
...
if (includeValidation) sbCtrls.Append(htmlHelper.ValidationMessageFor(expression));
...
}
TagHelper ProcessAsync メソッド内から、同じまたは類似のデータ注釈情報を取得するにはどうすればよいですか? または、さらに良いことに、上記と同様の方法で検証要素を完全に自動生成するにはどうすればよいですか?