問題タブ [onactionexecuting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - OnActionExecuting で期待されるアクション パラメータ タイプを取得する
質問:
呼び出されたアクションが期待するパラメーターのタイプを知ることは可能ですか? たとえば、次のようなものがありaction
ます。
次のようにTestCustomAttr
定義されます。
TestAction
したがって、ここで内部で呼び出しが行われると、メソッドOnActionExecuting
が期待する型を知りたいと思います。TestAction
(例: この場合、2 つの予想されるパラメーターがあります。1 つは typeint
で、もう 1 つは typestring
です。
実際の目的:
実際には の値を変更する必要がありますQueryString
。私はすでにクエリ文字列の値を取得し(を介してHttpContext.Current.Request.QueryString
)、それを変更してから手動で追加することができActionParameters
ますfilterContext.ActionParameters[key] = updatedValue;
問題:
現在、値を に解析しようとしていますint
。正常に解析された場合、それは であるint
と思われるため、必要な変更 (例: 値 + 1) を行い、そのキーに対してアクション パラメーターに追加します。
しかし、正確な予想されるタイプを知りたいです。とstring
見なされ、整数パラメーターとして追加さ"123"
れるint
ため、他のパラメーターに対して null 例外が発生します。(逆に)。したがって、更新された値を正確な予想される型に解析し、そのキーに対してアクション パラメーターに追加したいと考えています。それで、どうすればこれを行うことができますか?これは可能ですか?Reflection
何とか役立つかもしれませんか?
重要:私は提案を受け入れます。私のアプローチが実際の目的を達成するのに適していない場合、またはそれを行うためのより良い方法がある場合は、共有してください;)
c# - MVC Azure の OnActionExecuting でのコントローラーのインスタンス化 (... 404 をスローしない)
目的は、Azure MVC サイトの管理と同じ URL にメンテナンス バッチを追加することです。URL は次のようになります。
メソッドをトリガーするために、URL で必要な情報をオーバーライドOnActionExecuting
して取得することにしましたmaintenance
。私は MVC プロジェクトに詳しくないので、これはあまり一般的ではないかもしれません...
このコードはローカルで必要なように機能し、maintenance
メソッドが呼び出されてジョブを実行します。ただし、Azure にデプロイすると、この変更により 404 エラーがスローされます。興味深いことに、私は 2 つのデバッグ メールを送信してい"DEBUG - starts maintenance"
ますOnActionExecuting
。
まず、開発マシンと Azure で動作が異なるのはなぜですか?
では、どうすればそれを機能させることができますか?ありがとう、
1 月 4 日に編集:
私は少し進歩しましたが、この問題はまだ解決されていません。
- 私の開発マシンと Azure の違いについて: このサイトにはいくつかのリダイレクトがあります: https、404、および存在しないドメイン。404エラーが原因だと思いました。コードを try/catch でカプセル化してもエラーは発生しなかったので、仮説から 404 を抑制できると推測しています。
- 上記のコードを試してみましたが、OnAuthorization
成功しませんでした。- 最初のメールは、実際には最初のテストでのみ送信されること
に気付きました。DEBUG - On result executing
テストを 2 回目に実行すると送信されません。セッションは毎回チェックする必要があるため、これは私には意味がありません。
今日の結論: ルーティング/リダイレクトの問題のようです。
validation - Web API - ActionFilterAttribute OnActionExecuting 内のカスタム属性プロパティにアクセスする
カスタム DataAnnotation 属性内のプロパティにアクセスする必要があります。応答値を設定するためにこの属性にアクセスするにはどうすればよいですか? 属性がモデル プロパティに追加されます。
c# - リクエストがサーバーからのものかクライアントからのものかを判断するC#
OnActionExecuting(ActionExecutingContext filterContext)
リクエストがサーバーからのものかクライアントからのものかを判断する方法はありますか?