2

もちろん、そのRequest.UserHostAddress方法は素晴らしいですがApplication_Start()Requestオブジェクトにはまだ存在しません。

ユーザーがWebサイトにアクセスしたときに、最初にIPでユーザーの場所を推測し、デフォルトのロケールを設定したいと考えています。それから私はそれを別の場所で操作します。

Global.asaxその中にオーバーライドするイベントがあるに違いないと思いますが、Requestそのイベントが見つかりません...

実際、代替のトリックは高く評価されます...

更新

実際、私は多言語 Web サイトを開発しておりMaxMind GeoIP、IP によってユーザーの国を取得するために使用しています。そのため、ユーザーがサイトにアクセスしたときに (最初のリクエストのみ)、国を取得し、それをセッションまたはグローバル変数に格納する方法を見つけたいと考えています。

他のどこでも目標を達成できることはわかっておりRequest.UserHostAddress、問題はありません。この小さなアプリでは、リクエストごとに 1 行のオーバーヘッドが発生するだけでまったく問題になりません。

しかし、そのグローバル変数を一度だけ設定することは可能でしょうか...!?!

4

3 に答える 3

1

GlobalFilterCollection を使用することで解決できる場合があります。メソッド OnActionExecuting をオーバーライドして、必要なロジックを追加できます。この記事: ASP.NET MVC 4 カスタム アクション フィルターが役立つ場合があります。

于 2013-08-03T14:02:43.620 に答える