質問

カスタムオブジェクト用のエディターテンプレートがあります。かなり基本的な - 文字列と日付がたくさんあるだけです:

<%:Html.LabelFor(model => model.AString)%>
<%:Html.TextBoxFor(model => model.AString)%>

<%:Html.LabelFor(model => model.ADate)%>
<%:Html.EditorFor(model => model.ADate)%>

<%:Html.LabelFor(model => model.AnotherDate)%>
<%:String.Format("{0:d}", Model.AnotherDate)%>

これは、共有/editortemplatesフォルダーに保存されます。また、同じ場所にDateTime.Ascxエディターテンプレートがあり、すべてのDateTimeフィールドをオーバーライドしています。

上記のコードでわかるように、日付フィールドの1つは EditorFor 日付フィールドの場合、もう1つはそうではありません。ただし、どちらも同じレンダリングを行うため、DateTimeエディターがアクセスされていないと信じるようになります。私が間違っていることはありますか?これができるはずのようです。

DateTimeエディターを直接ビューで使用しましたが、正常に動作します。

助けや洞察をありがとう。

役に立ちましたか?

解決 2

私は問題を理解しました:

モデルのデータアノテーション用にセットアップされた部分的なメタデータクラスがあります(エンティティフレームワークを使用しています)。私の部分的な日付ビューは?datetime(datetime.ascx)のためです

すべての日付に設定されたすべての日付のデータ型属性がありました [DataType(DataType.Date)] それ以外の [DataType(DataType.DateTime)].

その属性を変更すると、それをすべて修正しました。

他のヒント

MVC 2とMVC 3の下で、MVC 3の下であなたのシナリオを試してみました。

ちょうど私はあなたが持っていることを正しく理解しています EditorTemplates あなたの共有にはあなたが含まれています ComplexModel.ascx 編集者とあなたの中 ComplexModel.ascx あなたが呼ぶ Html.EditorFor(m => m.ADate).

これに関してMVC 2の更新についてはわかりませんが、MVC 3は間違いなく機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top