2011-06-25 15 views
2

私はサーバー・クラスの下に赤い下線を得る:Server.Transferメソッドの名前空間とは何ですか?

Server.Transfer("~/PostEdit.aspx"); 

間違いがある:

は、ネストされた経由で外型「System.Web.UI.Page」の非静的メンバにアクセスすることはできません'AnswerQuestion.ThreadTable'

AnswerQuestionは部分クラスであり、ThreadTableは私が作成したカスタムクラスです。

+0

これは、名前空間とは何の関係もありません。エラーメッセージを読んでください。一語一語。 – TomTom

+0

これまで説明したことに加えて、メソッドは直接名前空間を持たず、代わりに名前空間に分類されるクラスに属します。 –

答えて

7

Pageインスタンス内にいないため、Serverプロパティにアクセスできません。このプロパティは、HTTPコンテキストのServerプロパティへのショートカットです。

現在のページのコンテキストを取得するために、静的Currentプロパティを使用します。

HttpContext.Current.Server.Transfer("~/PostEdit.aspx"); 
0

例外は明確にあなたがあなたのクラスの非静的メンバにアクセスしていると述べています。 Server.Transfer()とは何の関係もありません。

+0

サーバーはアクセスされた非静的メンバーです –

+0

@Rune FS - はいルーン、私が言っていることです。 – Bibhu

+0

"Server.Transfer()とは何の関係もありません。" Serverとは何の関係もないと私は理解していました。私にとってはServerとは関係がありません。だから私のコメント –

1
HttpContext.Current.Handler 
HttpContext.Current.Request.Server.Transfer 

Context.HandlerHttpContextのインスタンスです。

HttpContextHttpContext.Currentプロパティの下で要求のための現在のインスタンスを公開し、しかし、現在のコンテキストもprocessRequestメソッドにHTTPHandlersに渡すことができます。

void ProcessRequest(HttpContext context) 
+0

いいえ、 'HttpContext.Hander'はハンドラのインスタンス、つまり' Page'インスタンスです。 – Guffa