1

次のjsを使用してフォームに日付ピッカーを設定しました。

$("#Expiry").datepicker({
   regional: 'en-GB',
   dateFormat: 'dd/mm/yy',
   firstDay: 1
});

私の見解では次のようになっています(asp.net MVC)

<%: Html.TextBoxFor(m => m.Expiry) %>

私のモデルでは、Expiryはnull許容型ですDateTime?

日付ピッカーを使用して日付を選択すると、正しい形式で選択されます

データベースからデータをロードすると、時間部分の最後に常に00:00:00と表示されます

これを行わないようにするにはどうすればよいですか?

バインディングでフォーマット式を使用しようとすると、コンパイルされません。

確かに、jQueryは、フォームフィールドにプリロードされている値に対して指定したフォーマットを尊重する必要がありますか?

日付ピッカーがフィールドに適用されるので、カレンダーで選択できます。ロードされた値にフォーマットが適用されないだけです

何か案は?

4

3 に答える 3

6

これを行わないようにするにはどうすればよいですか?

フォーマットを指定できる属性を使用DateTimeして、ビューモデルの対応するプロパティを装飾できます。[DisplayFormat]

public class MyViewModel
{
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? Expiry { get; set; }

    ... other properties
}

TextBoxForビュー内で、をEditorFor呼び出しに置き換えます。

<%: Html.EditorFor(m => m.Expiry) %>
于 2012-06-14T11:58:41.247 に答える
3

~/Views/Shared/EditorTemplates/DateTime.cshtml次のコンテンツを含むエディターテンプレートを作成します。

@model DateTime?
@{
string finalDate = string.Empty;

if (Model != null)
{
    DateTime date = (DateTime)Model;
    finalDate = String.Format("{0:d}", date.Date.ToShortDateString());
}

@Html.TextBox(string.Empty, finalDate, new { @class = "datepicker" })

あなたのビュー書き込みで(すみません、それはかみそりの構文です、私はaspx構文を知りません)

@Html.EditorFor(model => model.Expiry)

したがって、将来的には、アプリケーションの日付形式について心配する必要はありません。

于 2012-06-14T12:02:01.057 に答える
0

アプリケーションにカルチャが1つしかない場合は、次のようにweb.configファイルでカルチャを設定できます。

<globalization culture="en-US" />

またはスペインの場合:

<globalization culture="es-ES" />

このように、バインディングはフォームの入力値を変換するために指定されたフォーマットを考慮します。

于 2014-06-24T20:54:32.110 に答える