現在、DateTime オブジェクトに最小値が設定されている場合、DateTime オブジェクトを空の文字列として表示するカスタム ヘルパーで EditorFor ヘルパーをオーバーライドしています。TextBoxFor ヘルパーを使用してこれを行います。
<%: Html.TextBox("", (Model != DateTime.MinValue ? Model.Date.ToString("ddMMMyy") : string.Empty), new { @class = "edit-date-field" })%>
問題は、これを次のように使用する場合です。
<%: Html.EditorFor(m => m.StartDate, new { id = "field-id", @class = "field-class"})%>
私は MVC が field-id および field-class 属性を保持することを期待していましたが、代わりに、生成された要素には id="StartDate" と 1 つのクラス、class="edit-date-field" しかありません。
では、EditorFor の元の呼び出しに含まれている属性を保持するにはどうすればよいでしょうか。元の id と class 属性をテンプレートに追加すると、DateTime オブジェクトを使用した EditorFor へのすべての呼び出しで、特定の要素/値のペアが取得されますが、これは必要ではありません。
ありがとう!