Я внедряю контроль капчи для потерянного пароля на веб-сайте, как описано здесь
Но я чувствую себя очень неудобно с `
filterContext.ActionParameters["captchaValid"] = recaptchaResponse.IsValid;
Так как:
- У меня строго типизированное представление с валидаторами
- В тот день, когда я изменю имя свойства, не помня это строковое поле, оно не сработает.
Поэтому я искал, как отредактировать атрибут моей модели в ActionFilterAttribute
, в OnActionExecuting
, потому что моему действию контроллера потребуются эти данные. Я нашел это, но у меня это не работает, так как мне нужно, чтобы модель была установлена ДО выполнения действия.
Поэтому я подумал, что могу добавить «переменную Post», которая будет считываться связывателем модели, но похоже, что filterContext.HttpContext.Request.Form
находится в режиме только для чтения.
Итак, как, по-вашему, я могу поместить результат в свою модель?
E.g: MyModel.IsCaptchaValid = recaptchaResponse.IsValid;
Событие, если я не могу не указать поле свойства, это лучше, чем сейчас:
filterContext.Something.Else["ModelKey"] = recaptchaResponse.IsValid;;