[解決済み] HttpContextから現在のSystem.Web.UI.Pageを取得する?
2023-05-21 15:27:55
質問
これは実際には2つの部分からなる質問です。まず、HttpContext.Currentは現在のSystem.UI.Pageオブジェクトに対応するのでしょうか?
そして2つ目の質問は、おそらく1つ目の質問と関連していますが、なぜ現在のページがインターフェースを実装しているかどうかを見るために以下を使うことができないのかということです。
private IWebBase FindWebBase()
{
if (HttpContext.Current as IWebBase != null)
{
return (IWebBase)HttpContext.Current.;
}
throw new NotImplementedException("Crawling for IWebBase not implemented yet");
}
一般的なコンテキストは、いくつかのコントロールがSharePointのWebパーツとして実行されているか、Asp.Netフレームワークの一部として実行されているかを知る必要があるということです。
私は、コントロールが自分自身への参照を渡すことを要求し、コントロールのPageプロパティをチェックすることによって問題を解決しましたが、なぜ上記が機能しないのか、まだ不思議です。
コンパイラーエラーは 参照変換、ボックス化変換、アンボックス化変換、ラッピング変換、または null 型変換によって System.Web.HttpContext を ...IWebBase に変換することができません。
どのように解決するのですか?
いいえ、MSDN の HttpContext.Current: "Gets or sets the HttpContext object for the current HTTP request." に記載されています。
つまり、Pageではなく、HttpContextオブジェクトです。
を使ってHttpContext経由でPageオブジェクトにアクセスすることができます。
Page page = HttpContext.Current.Handler as Page;
if (page != null)
{
// Use page instance.
}
関連
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] foreachループの現在の反復処理のインデックスを取得するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】プロセスが実行されているかどうかを知るには?