模型中有一个属性用于检查验证码。验证码的文本存储在会话中context.HttpContext.Session.GetString("CaptchaCode");
。我正在尝试这样做:
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
RegisterFizikModel.InputModel inputModel = (RegisterFizikModel.InputModel)validationContext.ObjectInstance;
_captcha = validationContext.HttpContext.Session.GetString("CaptchaCode");
if (inputModel.Captcha != _captcha)
{
return new ValidationResult(GetErrorMessage());
}
return ValidationResult.Success;
}
结果是一个错误:
ValidationContext不含HttpContext
如何从属性属性中的会话中获取值HttpContext.Session.GetString?
如果您的类实现了接口
IModelValidator,那么您必须在方法中实现验证代码Validate。此方法接收一个参数ModelValidationContext context,您可以从中获取会话数据: