コントロールの Label と Required メタデータを設定する EditorTemplate (文字列用) 内から呼び出す拡張メソッドがあります。(モデルに注釈を付けることができないため、これを行っています)。
public static void SetMetadata(this ViewUserControl control)
{
if (!string.IsNullOrEmpty((string)control.ViewData["labeltext"]))
control.ViewData.ModelMetadata.DisplayName = (string)control.ViewData["labeltext"];
if (control.ViewData["required"] != null)
control.ViewData.ModelMetadata.IsRequired = (bool)control.ViewData["required"];
}
Required = trueに設定したフィールドで ModelState.IsValid が取得されない理由は誰にもありますか?