0

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 =は日付ではなくテキストに設定されています。

私は完全に混乱しています。これを引き起こす原因は誰にもありますか?

4

2 に答える 2

0

本当にこのリンクをたどっただけの場合、それが機能しなかった理由は、日付ピッカーを設定するセレクターに のみが含まれているため.dateです。JavaScript を次のように変更してみてください。

$('.date, .text-box.single-line').datepicker({dateFormat: "dd/mm/yy"});

そして、それが機能するかどうかを確認してください。.text-box.single-lineその場合、日付ピッカーとして意図されていない他のテキストボックスによって共有される可能性のある生成クラスのように見えるため、FooNo 用に生成されたテキストボックスを修正することを検討することをお勧めします。

于 2011-09-15T23:42:43.177 に答える
0

コメントに答えるには、テンプレートをディレクトリDate.cshtmlに配置してグローバルにすることができますViews/Shared/EditorTemplates

于 2011-09-16T00:05:11.490 に答える