DateRangeというカスタム検証属性に次のコードがあります。
private DateTime _minDate = DateTime.Today.AddYears(-100);
private DateTime _maxDate = DateTime.MaxValue;
// String representation of the Min Date (yyyy/MM/dd)
public string Min
{
get { return FormatDate(_minDate, DateTime.Today.AddYears(-100)); }
set { _minDate = value == "Today" ? DateTime.Today : ParseDate(value, DateTime.Today.AddYears(-100)); }
}
// String representation of the Max Date (yyyy/MM/dd)
public string Max
{
get { return FormatDate(_maxDate, DateTime.MaxValue); }
set { _maxDate = value == "Today" ? DateTime.Today : ParseDate(value, DateTime.MaxValue); }
}
次に、この属性を次のようなエンティティモデルのプロパティのメタデータに書き込みます。
[DateRange(Max = "Today")]
public string SomeDateProperty { get; set; };
Maxプロパティのゲッターにブレークポイントを設定しました。初めてビューを開くと、ブレークポイントがアクティブになり、DateTime.Todayが取得されます。結果としてビューを更新してもブレークポイントはアクティブにならず、古い値が取得されます。キャッシュ検証属性だと思います。私の質問は:これはキャッシングのせいですか?もしそうなら、それを無効にする方法は?前もって感謝します