1

私のモデルには DateTime フィールドがあります:

    [UIHint("DateTimeHHMM")]
    public DateTime TimeBooked { get; set; }

EditorTemplate を使用してレンダリングされます。

@model Nullable<System.DateTime> 

@if ( Model.HasValue ) { 
@Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy HH:mm:ss}" , Model.Value ) , new  {     @class = "span3 disabled" } ) 
} 
else { 
@Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy HH:mm:ss}" , DateTime.Now ) , new { @class = "span3 disabled" } ) 
} 

私の見解では、構文は次のとおりです。

    <div class="editor-label">
        @Html.LabelFor(model => model.TimeBooked)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.TimeBooked)
        @Html.ValidationMessageFor(model => model.TimeBooked)
    </div>

ビューでレコードを作成するときに、[保存] をクリックすると、テキスト ボックスに次のように入力されます。

22/07/2012 18:33:29
  • 検証メッセージが表示されます:

フィールド TimeBooked は日付でなければなりません。

モデルまたはエディター テンプレートに何か問題がありますか?

ありがとうございました、

マーク

4

1 に答える 1

1

特に日付 (および数値) 形式に関しては、アプリケーションが適切な言語 (CultureInfo) で実行されていることを確認する必要があります。

これは、web.config ファイルで行うことができます。

  <system.web>
    <globalization culture="en-GB" uiCulture="en-GB"/>

.NET が日付と数値の解析を適切に処理するように、これをニーズに合った地域/国に設定する必要があります。

于 2012-07-22T20:22:01.527 に答える