我正在为网站中丢失的密码实施验证码控制,如此处所述
但是我觉得很不舒服`
filterContext.ActionParameters["captchaValid"] = recaptchaResponse.IsValid;
因为:
- 我有一个强类型视图,带有验证器
- 那天我会更改属性名称而不记住这个字符串字段,它不会起作用。
所以我搜索了如何在 中编辑我的模型的属性ActionFilterAttribute
,OnActionExecuting
因为我的控制器操作将需要这些数据。我找到了这个,但对我不起作用,因为我需要在执行操作之前设置模型。
所以我想我可以添加一个“发布变量”,它将被模型绑定器读取,但似乎它filterContext.HttpContext.Request.Form
处于只读模式。
那么你认为我如何将结果放入我的模型中?
例如:MyModel.IsCaptchaValid = recaptchaResponse.IsValid;
如果我无法避免指定属性字段的事件,它比现在更好:
filterContext.Something.Else["ModelKey"] = recaptchaResponse.IsValid;;