2016-11-29 2 views
0

私はまだC#開発に新しいことができず、オブジェクトの作成に関する質問があります。コードの背後にasp.netでページオブジェクトを正しく作成する方法。

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

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

私の問題である、それはいつもと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例外を取得する理由すべてのアイデア? Pageオブジェクトを作成してRequestプロパティを使用できる正しい方法は何でしょうか?

お知らせください、 ありがとうございました!

+0

を使用して参照を取得できます。なぜ最初にページを作成する必要がありますか?リクエストはあなたが探している情報を実際に保持しているもので、[ユーザーコントロールから入手できます](https://msdn.microsoft.com/en-us/library/system.web.ui.usercontrol.request( v = .110).aspx)。 – mason

+0

私はページオブジェクトのインスタンスを作る必要があるとは思わなかった。だから私はステートメントを使用してSystem.Webを持っている限り、私は正しい新しいインスタンスを作成する必要はありませんか? – Learn12

+1

'BasePage'はどのようなタイプから継承していますか?ユーザーコントロールにいる場合は、既に利用可能なRequestプロパティを使用できます。 – mason

答えて

1

method="POST"をフォームタグに使用します。

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

とコード使用中Request.Form["name"]

try 
{ 
    string holder = Request.Form["name"]; 
} 
catch (Exception ex) 
{ } 
+0

これはうまくいくようです。なぜ私は背後のコードでクエリ文字列を要求しようとしている場合私はPOSTを使用する必要がありますか? – Learn12

+0

これらはフォーム変数であり、クエリーストリング変数ではありません。フォームがサブミットされたとき、つまりポストバックがあるときにこのようにフォーム変数にアクセスします。 –

+0

私は洞察力に感謝します、私はこれを将来運ぶでしょう。 – Learn12

-1

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

、言われて、あなたがPageオブジェクトを必要としないこと

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

public System.Web.UI.Page requestVar; 

を変更、特定の問題に取り組むために。要求にアクセスする必要がある場合は、

var request = HttpContext.Current.Request; 
var someVariable = request["ParamName"]; 
+0

あなたの返事ありがとうジョン。 – Learn12

関連する問題