2017-11-06 5 views
0

を日付を検証しません。MVC足場ビューは、私は関連フィールドを、次のと私のデータベースからエンティティを作成して適切に

すべてがうまく生成されますが、Edit MVCはフィールドにデータベースの日付を設定しますが、何も変更せずに保存しようとすると、日付が正しくフォーマットされていないというエラーが発生します。

これを修正する方法がわかりません。ここで

は、生成されたテンプレートから該当するコードです:私は、編集ページのフィールドを開くと

​​

はで(つまり同じエディタで)読み込まれます:

DateOfBirth : 17/08/1991 00:00:00 
DateOfArrival : 17/08/1992 00:00:00 

しかし、彼は彼自身を解析することはできません生成された値。メッセージを受け取る:

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

+0

これは、挿入と更新の間に、ado.netとストアドプロシージャの両方で同じ日付形式を指定している..... –

+0

つまり、すべてがデータベースから自動的に生成されたということです。また、これは "JavaScript"検証の問題ですので、エディタフィールドに日付が間違って入力されていることしか想定できません。 – Reygoch

+0

次に、ビューで特定の日付形式をテキストボックスに指定します... –

答えて

0

// specify your date format here 
@Html.TextBoxFor(model => model.DateOfBirth, "{0:dd/MM/yyyy}", new { id = "yourID" }) 

(または)

ビューでモデルクラス

public int ID { get; set; } 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] // specify your date format here 
public DateTime DateOfBirth { get; set; } 
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")] // specify your date format here 
public DateTime DateOfArrival { get; set; } 

でこれを試してみてください、あなたのビューでこれを試してみてください

@Html.TextBoxFor(model => model.DateOfBirth) 
+0

少し詳細を追加しました。これは機能しません。それはちょうど私の日付(とにかく00です)から時間を削除しますが、JavaScriptの検証はまだ日付を受け入れていません。 – Reygoch

+0

最初の 'TextBoxFor()'は '{DisplayFormat}'属性を尊重しません( 'EditorFor'のみ、' {0:dd/MM/yyyy} 'やaa' [DisplayFormat]検証を行う - その唯一の目的は、値を特定の形式で表示することです。 –

関連する問題