ASP.NET:検索フォームのアクションページでフォーム変数の値を読みます
質問
私は私が
私の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内のすべてのページを持ちたいいけない。
事前に感謝します。
解決
だろう。これは、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参照を与えることはありません。