MVC3 プロジェクトがあります。私は2つのモデルクラスを持っています。それらをFooYesとFooNoと呼びましょう。
それぞれのコントローラーを作成しました。
両方の CRUD ビューを作成しました。
次に、このリンクに従って jQuery DatePicker を実装しました。ピッカー部分のみを実装し、検証は実装しませんでした。
私の FooYes edit.cshtml では、日付ピッカーは正常に動作します。FooNo の edit.cshtml ではそうではありません。
私が見つけた唯一の違いは、モデルの出力を取得するクラスにあります。
FooYes は、最終的な html では次のようになります。
<input class="date"
FooNo は次のようになります。
<input class="text-box single-line"
FooYes のモデルは次のとおりです。
[Display(Name = "Creation Date")]
[DataType(DataType.Date)]
public virtual DateTime CreationDate { get; set; }
FooNo のモデルは次のとおりです。
[Display(Name = "Expiration Date")]
[DataType(DataType.Date)]
public virtual DateTime ExpirationDate { get; set; }
ご覧のとおり、宣言はモデル内で同じであるため、そうではありません。ExpirationDate プロパティを FooNo から FooYes にコピー アンド ペーストし、FooYes 内で FooNo から FooYes にすべてのものを複製したところ、機能しました。したがって、モデルのコードではありません
.cshtml のコードは次のとおりです。
<div class="editor-label">
@Html.LabelFor(model => model.CreationDate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.CreationDate)
@Html.ValidationMessageFor(model => model.CreationDate)
</div>
これと他のものとの唯一の違いは、フィールドの名前です。
最終結果のソースhtmlを見ると、ヘッダー、インクルード、リンク、すべてがまったく同じですが、機能しないものを除いて、class =は日付ではなくテキストに設定されています。
私は完全に混乱しています。これを引き起こす原因は誰にもありますか?