0

ユーザーが dd-MMM-yyy 形式で日付を入力することを期待しています。したがって、ユーザー入力を検証するために、モデルで次を使用します

 [DisplayFormat(DataFormatString = "{dd-MMM-yyy}", ApplyFormatInEditMode = true)]
 public DateTime ? SubmittedToDateTime { get; set; }

ただし、検証エラーが発生します: フィールド SubmittedToDateTime は日付でなければなりません。ユーザー入力が : 12-Jun-2013 の場合。

また、フィールド値を 12-Jun-2013 から 12 Jun-2013 に変更すると、エラーは表示されないことにも注意しました。

ありがとう

4

2 に答える 2

2

yyy動作しません。yy年は2桁表示yyyy用と4桁表示用があります。したがって、おそらく 1 つを見逃していますy

于 2013-06-18T12:05:28.380 に答える
0

別のユーザーが述べたように、yyyフォーマットはありません。または、それぞれ 2 桁または 4 桁の年yyyyyy

また、DataFormatStringトークン インデックス ( a などString.Format) が必要なため、日付出力だけでなく、トークン構文でラップします。

[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]

また、 (jQuery-UI を使用することに反対ではなく) より多くの制御が本当にDateTime必要な場合は、DatePickerコントロールの編集テンプレートを作成して使用できます。

~/Views/Shared/EditorTemplates/DateTime.cshtml

@model DateTime?
@Html.TextBox(String.Empty,  String.Format("{0:dd-MMM-yyyy}", Model.HasValue ? Model : DateTime.Today), new { @class = "datepicker"})

次に、ページで jQuery と jQuery-UI の両方を参照し、次の行をどこかに追加する必要があります。

<script type="text/javascript">
  $(function(){
    $('.datepicker').datepicker({
      dateFormat: 'dd-M-yy' // http://api.jqueryui.com/datepicker/#utility-formatDate
    });
  });
</script>

次に、あなたの見解では、参照@Html.EditorFor(x => x.SubmittedToDateTime)

于 2013-06-18T12:18:15.083 に答える