0

検索機能を実装したいウェブサイトがあるので、以下のコードを追加して、HTMLページに検索ボックスを追加しました。

   <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として結果ページのみを表示したい。

4

5 に答える 5

5

テキストボックスフィールドにNAME属性がないことが原因である可能性があります。これは、Request.Formコレクションのキーとして使用される値です。name属性のない入力フィールドは送信されないと思います。

例えば:

<input id="txtSearchKey" type="text" name="txtSearchKey" />
于 2009-09-08T10:43:55.227 に答える
0

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

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

ただし、フォームアクションを使用して検索を別のページに転送する代わりに、次のようなPostBackUrlプロパティを持つボタンを使用できます。

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

ASP.NETでは、複数のフォームを持つことは許可されていないためです。

于 2009-09-08T10:24:23.723 に答える
0

使わない理由はありますか

form runat = "server"

次に、このフォームでTextFieldとButtonをドラッグします。次に、ボタンをダブルクリックして、必要なコードを記述します。

あなたがそれをあなたのやり方でやりたいのなら、あなたはそれが機能するためにあなたのsaname="txtMySearchKey"を与える必要があります

于 2009-09-08T10:51:20.687 に答える
0

物事を進める方法は、実際にはASP.NETWebフォームでの作業方法ではありません。推奨される方法は、asp.netサーバーコントロールとイベントを使用して、達成しようとしているプロセスを抽象化することです。たとえば、フォームは実際には次のようになっている必要があります(プログラムでコントロールを参照できるrunat = "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コントロールのクイックスタートの例を参照してください。

于 2009-09-08T12:08:46.667 に答える
0

Request.formの後に.toString()を使用しないでください...その後はnull参照を提供しません。

于 2013-02-27T19:12:21.290 に答える