2

私のコードはこれに似ています: http://demos.telerik.com/aspnet-mvc/grid/editingajax

DateTime 部分ビュー:

@model DateTime?
@( Html.Telerik().DatePickerFor(m => m) )

およびグリッド内のバインディング:

columns.Bound(p => p.Timestamp).Width(110);

そして、私のモデルクラスのフィールド:

public DateTime Timestamp
    {
        get; set;
    }

ただし、1 日に対して 12 より大きい値を入力すると、フィールドは日付でなければならないというエラーが表示されます。これはとても迷惑です!それを解決する方法は?

4

2 に答える 2

8

データ注釈は、使用する正しいデータ型を DatePickerFor に提供できます。次のデータ注釈を Class Property 宣言に追加します。

[DataType(DataType.Time)]

かみそりビュー:

@model DateTime?
@( Html.Telerik().DatePickerFor(m => m) )

バインディング:

columns.Bound(p => p.Timestamp).Width(110);

クラス:

[DataType(DataType.Time)]
public DateTime Timestamp
{
    get; set;
}
于 2015-01-30T19:49:45.490 に答える
4

同様の問題がありました。多くの頭をひっかいて試行錯誤した後、これが私にとってうまくいきました。

時間部分ビュー

@model DateTime?

@(Html.Kendo().TimePickerFor(m => m)
.Min(new DateTime(2010, 1, 1, 10, 0, 0)) //Set min time of the timepicker
      .Max(new DateTime(2010, 1, 1, 20, 0, 0)) //Set min date of the timepicker
      .Value(DateTime.Now) //Set the value of the timepicker
)

ビューモデル

[Required(AllowEmptyStrings = false, ErrorMessage = "Please select a start time")]
[Display(Name = "Start time")]
[DataType(DataType.Time)]
[UIHint("Time")]
public DateTime StartTime { get; set; }

景色

@Html.EditorFor(model=>model.StartTime)
@Html.ValidationMessageFor(model=>model.StartTime)

目立たない検証が機能するようになり、「開始時刻は日付でなければなりません」というエラー メッセージが表示されないようです。タイムピッカー ボックスが入力されていない場合でも、検証に失敗します。お役に立てれば。

于 2012-09-20T10:00:51.327 に答える