我正在使用 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 数据属性呈现到页面上的字段中。
我遇到的问题是设置的值可以更改,但每次更改时它仍然会在数据属性中呈现旧值。我猜这是缓存在某个地方。反正有没有删除缓存?
我会很感激帮助。谢谢