0

エンティティのフレームワーク6、MVC 4、jquery datepickerを使用しています。すべてのフォームデータを入力し、送信ボタンを押すと、ModelState.IsValidは、jquery datepickerの値がモデルの検証フィールドと一致しないため、常にfalse値を返します。 .cshtmlファイルMVC 4モデルはjqueryデータピッカーの日付形式を受け入れません

----- 
----- 
@Html.TextBoxFor(m => m.Annieversary, new { id = "anudate", @class = "form-control datetimepicker", @placeholder = "Annieversary Date" }) 
----- 
----- 

C#の横にある

[Required(ErrorMessage = "This field is required")] 

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
    [DataType(DataType.Date, ErrorMessage = "Date required")] 
    public Nullable<System.DateTime> Annieversary { get; set; } 

は、私はこれはまた、常にnullを返し、モデルと一致していない

@Html.TextBoxFor(m => m.Annieversary,"{0:dd/MM/yyyy}", new { id = "anudate", @class = "form-control datetimepicker", @placeholder = "Annieversary" }) 

下回ってみました値。私はC#は "MM/DD/YYYY"形式を受け入れますが、jquery datepickerは "DD/MM/YYYY"形式を返すことを知っています。どうすればこの問題を解決できますか?

+0

コメントは議論の対象外です。この会話は[チャットに移動されました](http://chat.stackoverflow.com/rooms/130937/discussion-on-question-by-merbin-jo-mvc-4-models-not-accept-jquery-datapicker- da)。 –

答えて

0

まず、単純化して動作させましょう。次に、必要と思う属性を追加することができます。

モデル
私は、フィールドのNULL可能を作るために疑問符を使用しています注意してください - 私はあなたがそれを必要とします理解して:我々

public DateTime? Anniversary { get; set; } 

ビュー
お知らせdatepickerクラス、 jQuery UI DatePickerコンポーネントを呼び出すために使用します:

@Html.TextBoxFor(m => m.Anniversary, new { @class = "datepicker" }) 

JavaScript
dateFormatを必要な形式に設定しています。これは役立ちますが、それはまだ十分ではありません。

<script> 
$(function() { 
    $(".datepicker").datepicker({ dateFormat: "dd/mm/yy" }); 
}); 
</script> 

のWeb.Config
さて、ここで魔法が起こる場所です。適切な日付形式を使用するには、アプリケーションのカルチャーを設定する必要があります。私はそれはあなたが必要と同じ日付フォーマット与えpt-BR、に設定されている:

<globalization culture="pt-BR" uiCulture="pt-BR"/> 

それを行う必要があり、それは最も基本的な例です。

覚えておくべき最も重要なことは次のとおりです。日付形式は、web.configで設定したカルチャと常に一致する必要があります。

関連する問題