0

私はまだ C# 開発の初心者で、オブジェクトの作成について質問があります。

私は Web サイトで作業しており、送信後に背後のコードでフォームの値を取得したいと考えています。最終的に、ページをユーザー コントロールに変換しようとしています。

ここで、Page オブジェクト (System.Web.UI.Page) のインスタンスを作成しようとしています。これにより、オブジェクトの Request プロパティにアクセスして送信値を読み取ることができます。

私の問題は、常に NullReferenceException をスローし、送信された値を読み取らないことです

これが私のコードです:

<form id="myForm" runat="server" > 
Name: <input type="text" name="name" id="name" /> 
<input type="submit" value="Submit Name" /> 
</form>


public partial class testing1 : BasePage
{
// Created an instance of Page Object
public System.Web.UI.Page requestVar;

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        // Try and use request, throws null exception
        string holder = requestVar.Request["name"];
    }
    catch (NullReferenceException)
    { }
}

}

null例外が発生する理由は何ですか? Request プロパティを使用できるように Page オブジェクトを作成する正しい方法は何でしょうか?

教えてください、ありがとう!

4

2 に答える 2

-1

あなたのコードがコンパイルされたことに驚いています。通常、コンパイラは初期化されていない変数を検出できます。あなたの例ではいくつかのものを残したと思います。

とにかく、特定の質問に対処するには、変更してください

public System.Web.UI.Page requestVar;

public System.Web.UI.Page requestVar = new Page();

そうは言っても、Page オブジェクトは必要ありません。リクエストにアクセスする必要がある場合は、次を使用してリクエストへの参照を取得できます。

var request = HttpContext.Current.Request;
var someVariable = request["ParamName"];
于 2016-11-29T20:43:31.860 に答える