ASP.NET:検索フォームのアクションページでフォーム変数の値を読みます

StackOverflow https://stackoverflow.com/questions/1393163

  •  21-09-2019
  •  | 
  •  

質問

私は私が

私のhtmlページに検索ボックスを持っているコードの下に追加私はfunctionality.Soを検索実装するウェブサイトを持っています
   <form id="search" method="post" action="Results.aspx">
    <input id="txtSearchKey" type="text" name="txtSearchKey" />
    <input id="Submit1" type="submit" value="submit" /><br />
    <br />
</form>

Results.aspxに、私は、ユーザーがtxtSearchKeyテキストボックスに入力した値を読みたいです。これを行うための理想的な方法は何ですか?私が使用し

 string strKey = Request.Form["txtSearchKey"].ToString(); 

しかし、それがnull参照の例外がスローされます。してくださいアドバイス

私はASP.NETとしてのみ結果ページを持ちたいASP.NET.I内のすべてのページを持ちたいいけない。

事前に感謝します。

役に立ちましたか?

解決

あなたはテキストボックスのフィールド上の NAME の属性を持っていないため、だろう。これは、Request.Formコレクション内のキーとして使用される値です。 name属性のない入力フィールドには、私が思うに、提出されることはありません。

例えば:

<input id="txtSearchKey" type="text" name="txtSearchKey" />

他のヒント

あなたはこれによりあなたのtxtSearchKeyフィールドを取得することができます:

string strKey = PreviousPage.Request.Form["txtSearchKey"].ToString();

しかし、代わりに別のページに検索を転送するために、フォームのアクションを使用して、あなたがそのようPostBackUrlプロパティでボタンを使用することができます:

<asp:Button runat="server" ID="btnSearch" PostBackUrl="Search.aspx" />

ASP.NETで、より多くのそして一つの形が許可されていない持っているので。

は、

を使用していない何らかの理由があります

フォームにrunat = "サーバー"

その後、

とTextFieldと、この形式のボタンをドラッグします。そして、あなたがしたいボタンと書き込みコードをダブルクリックします。

あなたはそれをあなたの方法をしたい場合は、作業

にあなたのそれの名前=「txtMySearchKey」を与える必要があります
あなたは物事を行っている方法は本当にあなたがASP.NET Webフォームでの作業方法ではありません。好ましい方法は、あなたが達成しようとしている抽象化のプロセスにasp.netのサーバーコントロールとイベントを使用することです。たとえば、フォームは本当に(あなたがコントロールをプログラムで参照することができますラナの点に注意してください=「server」属性)次のようなものにする必要があります:

<form id="form1" runat="server">
    <div>
        <asp:Panel ID="PanelSearch" runat="server" DefaultButton="ButtonSubmit">
            <asp:TextBox ID="TxtSearchKey" runat="server" /><br />
            <asp:Button ID="ButtonSubmit" Text="Submit" runat="server" 
                onclick="ButtonSubmit_Click" /><br />
        </asp:Panel>
    </div>
</form>

次に、あなたの後ろにあなたのコード内でButtonSubmit_Clickテキストボックスから値を取得することができますし、このようなTxtSearchKeyイベントを処理します。

protected void ButtonSubmit_Click(object sender, EventArgs e)
{
    string strKey = TxtSearchKey.Text;
}

TextBoxコントロールクイックスタートの例を参照してください>詳細はます。

ジャスト.toStringを(使用しない)のRequest.Form後...それはその後のnull参照を与えることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top