私は現在、特定の形式、つまり大文字(DD-MON-YYYY)でDateTimeフィールドを表示しているMVC3サイトを持っています。
このために次のDateTime.ascxEditorTemplateを作成し、カスタムjavascriptによって取得されるカスタムdata-datepicker属性を追加して、JqueryUIDatepickerをフィールドに追加します。<%@ Control Language = "C#" Inherits = "System.Web.Mvc.ViewUserControl"%>
<input id="<%= ViewData.ModelMetadata.PropertyName %>"
name="<%= ViewData.ModelMetadata.PropertyName %>"
type="text"
value="<%= ViewData.TemplateInfo.FormattedModelValue.ToString().ToUpper() %>"
data-datepicker="true" />
私が抱えている問題は、EditorTemplateを使用すると、入力ボックスのすべてのRemoteValidation属性が失われることです。明らかに、私はそれらを具体的に追加していないからです!
リモート検証とJQueryUI日付ピッカーを使用して入力ボックスを作成できるように、モデルまたはモデルメタデータ内で必要な情報を見つけることができる正しい方向に私を向けることができますか?
これは私が現在EditorTemplateから得ているものです:
<input id="MyDate"
name="MyDate"
type="text"
value="19-SEP-2011"
data-datepicker="true" />
これは私が最終的に欲しいものです:
<input class="text-box single-line"
data-val="true"
data-val-remote="&#39;Date (DD-MON-YYYY)&#39; is invalid."
data-val-remote-additionalfields="*.MyDate"
data-val-remote-url"=/Validation/IsDateValid"
data-val-required="A Date must be given"
id="MyDate"
name="MyDate"
type="text"
value="19-Sep-2011"
data-datepicker="true" />
注意すべき点がいくつかあります。
- 必要に応じて、HTMLHelperを使用できます。私はEditorTemplateに限定されていません
- さまざまな日付に使用されるさまざまなRemoteValidationアクションがコントローラーにあります。したがって、検証URLをハードコーディングすることはできません。モデルのフィールドに装飾されているRemoteAttributeから値を検索する必要があります。
- 同様に、data-val-remote値も、モデルフィールドのRemoteAttributeに基づいてロードする必要があります。
誰かアイデアはありますか?