ASP.NET MVC 3 を使用しています。独自のカスタム検証属性を追加しました。
public class CustomAttribute : ValidationAttribute, IClientValidatable {
private readonly string _parameter1;
public CustomAttribute(string parameter1) {
_parameter1 = Global.Settings[parameter1];
}
protected override ValidationResult IsValid(object value, ValidationContext context) {
...
}
public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) {
yield return new ModelClientValidationRule() {
ErrorMessage = FormatErrorMessage(metadata.DisplayName),
ValidationType = "custom",
ValidationParameters = { { "parameter1", _parameter1 } }
};
}
}
実装方法に注目してくださいIClientValidatable
。parameters1
これにより、設定が HTML 5 データ属性としてページのフィールドにレンダリングされます。
私が抱えている問題は、設定の値が変更される可能性があることですが、変更されるたびにデータ属性内の古い値がレンダリングされます。これはどこかにキャッシュされていると思います。とにかくキャッシュを削除する方法はありますか?
助けていただければ幸いです。ありがとう