1

環境

私はコントローラーにいます。

名前空間を使用しますSystem.Web:

using System.Web;

を呼び出すと、VSは で定義されていないHttpContext.Currentことを警告します。CurrentHttpContextBase

HttpContext.Current.Session["currentUser"];

System.Web前に示すHttpContext.Currentと、機能します:

System.Web.HttpContext.Current.Session["currentUser"];

質問

System.Webの前に示す必要があるのはなぜHttpContext.Currentですか?

4

3 に答える 3

3

you have namespace conflict, use this:

using HttpContext = System.Web.HttpContext;

于 2012-07-24T09:02:20.720 に答える
2

コントローラクラスには、タイプHttpContextBaseのHttpContextプロパティが含まれているため、このようなあいまいさが発生します。

public HttpContextBase HttpContext { get; }

そのため、完全に定型化された名前またはエイリアスを使用する必要があります

于 2012-07-24T09:05:18.520 に答える
1

これは、コントローラーのコンテキストにいるためです。HttpContextコントローラには、タイプと呼ばれるプロパティがありますHttpContextBase。このプロパティのインスタンスは現在のラッパーです。これは、プロパティを使用するコントローラーで既に使用可能であるため、HttpContext呼び出す必要がないことを意味します。HttpContext.Current

代わりに、このようにすることができます(コントローラーにいる限り):

HttpContext.Session["currentUser"];
于 2012-07-24T09:06:39.150 に答える