3

このトピックに関するScottHanselmanの投稿を読みました。もっと簡単なアプローチのように見える別の記事を見つけました。私が試してみることにした2番目。

ただし、EditorTemplatesを作成する最初の部分は機能しません。私はDateTime.ascxをコピーし、TimeSpan.ascxは作者にそれらを書かせました。次に、ビューのフィールドを分割します。

    <div class="editor-label">
        <%= Html.LabelFor(model => model.LeaveRequest.DateOfLeave)%>
    </div>
    <div class="editor-field">
        <div class="date-container">
            <%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date)%>
        </div>
        <div class="time-container">
            <%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.TimeOfDay)%>
        </div>
        <div class="clear">
            <%= Html.ValidationMessageFor(model => model.LeaveRequest.DateOfLeave)%>
        </div>
    </div>

私が抱えている問題は、私が得ている振る舞いが、その作者が起こるべきであると説明したものと同じではないということです。これが私の結果のスクリーンショットです。

最初のフィールドに完全なDateTimeを示し、2番目のフィールドにすべてゼロを示すスクリーンショット

何かが足りないに違いないが、何がわからない。私はこの記事を数回読みましたが、何が欠けているのかわかりません。プログラムに新しいEditorTemplatesを伝えるために何かが必要だと思いますが、その方法がわかりません。

4

2 に答える 2

8

あなたはスコットの解決策とあなたがリンクする解決策の両方がしないという事実を見逃しました:

<%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date) %>

代わりに、以下を使用します。

<%= Html.EditorFor(model => model.LeaveRequest.DateOfLeave.Date) %>

次に、カスタムエディタを使用して、フィールドを(日付と時刻の両方ではなく)日付のみに制限します。

リンク先の記事の[日付/時刻フィールドを区切る]ヘッダーまで下にスクロールして、カスタムエディターテンプレートについてもう少し詳しく読んでください。

于 2010-11-15T16:12:27.097 に答える
1

必要に応じて、クライアント側でデフォルト値を追加することもできます。

<%= Html.TextBoxFor(model => model.LeaveRequest.DateOfLeave.Date,
new { @Value= DateTime.Now })%> 

これにより、Texboxの初期値が現在の値DateTimeに設定されますが、明らかに好きなように設定できます。

于 2010-11-15T16:20:24.673 に答える