0

DateTime?フィールドを次のようにフォーマットしていますがdd/MM/yyyy、フォームを送信すると検証エラーが表示されます。

ここに画像の説明を入力

取れない どうしてこうなるの?

モデル

[Display(Name = "Expected Ending Time")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? ExpectedEndingTime { get; set; }

HTML

@Html.TextBoxFor(x => x.Requsition.ExpectedEndingTime, new { @class = "form-control dataPickerField", id = "ExpectedEndingTimeDataPicker", @readonly = true })

@Html.ValidationMessageFor(x => x.Requsition.ExpectedEndingTime)



<script>
    $(function () {            
        $('#ExpectedEndingTimeDataPicker').datepicker({
            format: 'dd/mm/yyyy',
            autoclose: true           
        })
        .on('changeDate', function (ev) {
              //  do things;
    );
    });
</script>
4

2 に答える 2

1

DataFormatString は表示のためだけに使用され、ModelBinder による解析には使用されないと思います。したがって、サーバーは引き続き web.config の Culture を使用します。

この日付形式で使用する特定のカルチャを config にハードコーディングできます。

ここにあなたを助けることができる答えがあります - https://stackoverflow.com/a/8035636/169635 解析に CurrentCulture を使用する IModelBinder のサンプルがあります。独自のフォーマットを指定できます

于 2014-01-15T17:37:12.657 に答える
0

私にとって何も役に立たなかった....

そのため、モデルに 1 つのフィールドを追加し、必要な形式でDateTimea のように保持Stringします。

DateTimeフォーマットが必要な場所には、別のフィールドがあります。

[Display(Name = "Expected Ending Time")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime? ExpectedEndingTime { get; set; }


[Required]
[Display(Name = "Expected Ending Time")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public string ExpectedEndingTimeAsString { get; set; }  
于 2014-01-15T18:20:02.197 に答える