ここで説明するように、Webサイトでパスワードを紛失した場合のキャプチャコントロールを実装しています
しかし、私は`に非常に不快感を覚えます
filterContext.ActionParameters ["captchaValid"] = recaptchaResponse.IsValid;
なぜなら:
- バリデーターを使用して、強く型付けされたビューがあります
- この文字列フィールドを覚えずにプロパティ名を変更する日は、機能しません。
そこで、コントローラーアクションにこのデータが必要になるため、、ActionFilterAttribute
のモデルの属性を編集する方法を検索しました。OnActionExecuting
これを見つけましたが、アクションを実行する前にモデルを設定する必要があるため、機能しません。
そこで、モデルバインダーが読み取る「Post変数」を追加できると思いましたfilterContext.HttpContext.Request.Form
が、読み取り専用モードのようです。
では、どのようにして結果をモデルに入れることができると思いますか?
例えば:MyModel.IsCaptchaValid = recaptchaResponse.IsValid;
プロパティフィールドを指定することを避けられない場合のイベント、それは今よりも良いです:
filterContext.Something.Else["ModelKey"] = recaptchaResponse.IsValid;;