ASP.NET:在搜索表单的操作页面中读取表单变量值

ASP.NET:在搜索表单的操作页面中读取表单变量值,asp.net,search,form-post,Asp.net,Search,Form Post,我有一个网站,我想实现搜索功能。所以我添加了下面的代码,在我的html页面中有一个搜索框 <form id="search" method="post" action="Results.aspx"> <input id="txtSearchKey" type="text" name="txtSearchKey" /> <input id="Submit1" type="submit" value="submit" /><br /&g

我有一个网站,我想实现搜索功能。所以我添加了下面的代码,在我的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>
但是它抛出了一个空引用异常


我不希望ASP.NET中包含所有页面。我只希望结果页面为ASP.NET

您可以通过以下方式获取txtSearchKey字段:

string strKey = PreviousPage.Request.Form["txtSearchKey"].ToString();
但是,您可以使用具有PostBackUrl属性的按钮,而不是使用表单操作将搜索转发到另一个页面,如下所示:

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


因为在ASP.NET中,不允许有多个表单。

您可以通过以下方式获取txtSearchKey字段:

string strKey = PreviousPage.Request.Form["txtSearchKey"].ToString();
但是,您可以使用具有PostBackUrl属性的按钮,而不是使用表单操作将搜索转发到另一个页面,如下所示:

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


因为在ASP.NET中,不允许有多个表单。

可能是因为您在文本框字段上没有名称属性。这是在Request.Form集合中用作键的值。我认为,没有name属性的输入字段将不会被提交

e、 g:

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

可能是因为您在文本框字段上没有NAME属性。这是在Request.Form集合中用作键的值。我认为,没有name属性的输入字段将不会被提交

e、 g:

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

您有什么理由不使用

表单runat=“服务器”

然后在此窗体中拖动一个文本字段和一个按钮。然后双击按钮并编写所需的代码


如果您想按自己的方式来做,您需要给您的s一个name=“txtMySearchKey”以使其工作

您有什么理由不使用它吗

表单runat=“服务器”

然后在此窗体中拖动一个文本字段和一个按钮。然后双击按钮并编写所需的代码


如果您想按自己的方式进行,则需要为您的s指定一个name=“txtMySearchKey”以使其正常工作

您处理事情的方式实际上与ASP.NET web表单中的工作方式不同。首选的方法是使用asp.net服务器控件和事件来抽象您试图实现的进程。例如,表单应该是这样的(注意runat=“server”属性,它使您能够以编程方式引用控件):


有关更多信息,请参阅。

您处理事情的方式与ASP.NET web表单中的工作方式不同。首选的方法是使用asp.net服务器控件和事件来抽象您试图实现的进程。例如,表单应该是这样的(注意runat=“server”属性,它使您能够以编程方式引用控件):



有关更多信息,请参阅。

请不要在请求后使用.toString()。表单。。。之后它不会提供空引用。

只是不要在请求后使用.toString()。表单。。。之后它将不会提供空引用。

我只希望有一个ASP.NET页面来显示结果。我希望将其余页面作为HTML页面。我的第一个建议适合您。实际上不是。由于上一页是纯HTML,PreviousPage属性将为空,这将导致错误。Yea。上一页抛出错误。其他选项是什么?请参阅下面我的答案。使用原始帖子中的代码,但请确保将“名称”属性放在表单字段中。我只希望有一个ASP.NET页面显示结果。我希望将其余页面作为HTML页面。我的第一个建议适合您。事实上并非如此。由于上一页是纯HTML,PreviousPage属性将为空,这将导致错误。Yea。上一页抛出错误。其他选项是什么?请参阅下面我的答案。使用原始帖子中的代码,但请确保将name属性放在表单字段中。我不是要求在带有文本框的网页上出现按钮单击事件。我只有一个页面(显示搜索结果)和很多HTML页面(应该有这个搜索框):)如果你不打算使用asp.net的功能,为什么要使用它?你的电话,我想…我不是要一个带有文本框的网页的按钮点击事件。我只有一个页面(显示搜索结果)和很多HTML页面(应该有这个搜索框):)如果你不打算使用asp.net的功能,为什么要使用它?你的电话,我想…还是收到一个空引用异常?另外,您将代码放在什么位置来检索表单值(即,什么页面事件处理程序,或者它是内联的)?仍然得到空引用异常?另外,您将代码放在哪里以检索表单值(即,哪个页面事件处理程序,或者它是内联的)?您将代码行放在哪里?您将代码行放在哪里?