DateTime 値を保持する入力コントロールをレンダリングしています。
[DataType(DataType.Date)]
public DateTime? ScheduledDateTime { get; set; }
入力に適用されるフォーマットは、実行時にデータベースから取得されるユーザー設定として保存されます。
したがって、実行時に次の値が得られます。
YYYY-MM-DD
実際のフォーマットに関係なく、指定されたように DateTime をフォーマットするようにモデル バインダーに指示するにはどうすればよいですか? 私が見つけたすべての例は DateFormatString 属性の設定に依存していますが、これはコンパイル時の定数でのみ設定できます。これにより、私の目的には使用できなくなります。
デフォルトのモデル バインダーをオーバーライドするものはありますか? 誰もが例を手に入れましたが、私はグーグルを立ち上げることができませんでした。
編集:実行時に変換を処理する新しい HtmlHelper を作成することもできますか?
EDIT2:私はこのようにそれについて行くつもりです。過度に冗長な命名規則をご容赦ください。
<%= Html.TextBoxFor(model => model.ScheduledDateTime, string.Format("{0:" + User.GetDateFormatStringAsCSharpFormat(SessionManager.Default.User.DateFormat)+ "}", Model.ScheduledDateTime))%>