DateTimeのエディターテンプレートを作成したいですか?日、月、年の3つのテキストボックスがあるフィールド。現在、私のEditorTemplates/Date.cshtmlは次のようになっています。
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Day.ToString() : "",
new { @class = "day-box", title = "day", min = "1", max = "31", type = "number" })
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Month.ToString() : "",
new { @class = "month-box", title = "month", min = "1", max = "12", type = "number" })
@Html.TextBox(string.Empty, Model.HasValue ? Model.Value.Year.ToString() : "",
new { @class = "year-box", title = "year", min = "1900", max = "2020", type = "number" })
明らかな問題は、(そのままで)id属性とname属性がすべて同じ値に設定されることです。これらの値に何かを追加する必要があり、モデルに戻さないでください。
idに_Dayを追加し、Day入力の名前に.Dayを追加すると、同様に月と年で問題が解決することを期待していました。しかし、私はこれを行う簡単な方法を見ることができません。
実際の値に非表示の入力を使用し、次にjavascriptを使用して、3つの(d / m / y)テキストボックスのいずれかで値が変更されるたびに非表示フィールドの値を更新しました。
それで、string.Emptyを渡すときに、MVCが使用する名前とIDを取得する方法はありますか?ViewData.TemplateInfo.HtmlPrefixを使用しても、完全な値が得られないようです。
私がやりたいことをするためのより良い方法はありますか?私がこれに最初に取り組んだとは想像できません。
私はそこにサードパーティの日付ピッカーがあることを知っています。この問題のために、私はそれらに興味がありません。
ありがとう、〜S