1
我使用ASP.NET MVC 3,我有我添加自己的自定义验证属性:ASP.NET MVC 3 IClientValidatable属性 - 明确的参数缓存
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数据属性。
我的问题是设置的值可以改变,但每次改变它仍然呈现数据属性中的旧值。我猜这是缓存在某处。无论如何删除缓存?
我会很感激的帮助。谢谢
有没有办法做到这一点,而无需重新启动应用程序/池?在生产环境中,这是不可行的,否则所有活动会话都会丢失,至少可以说我没有看到 – mrd3650 2016-04-27 13:31:28
。自从我发布这个问题以来,我一直没有看过,所以也许有人提出了一个更好的方法。 – nfplee 2016-04-27 15:32:31