我在home.aspx上有一个表格就是这样:
<form name="search" method="post" action="searchresults.aspx" id="searchform" runat="server">
<div class="searchField">
<input name="keywords" type="text" id="keywordSearch" value="Enter keywords" class="watermark" />
</div><!--end searchField-->
<div class="advanceSearchBox">
<p><b>Narrow results by:</b></p>
<asp:Literal ID="ltrlPopulation" runat="server" />
<asp:Literal ID="ltrlDatasource" runat="server" />
</div><!--end advanceSearchBox-->
<div style="float: right; margin-right: 2px;">
<asp:ImageButton ImageUrl="images/go_up.png" AlternateText="GO" Width="34" Height="24" id="keywordSearchGO" runat="server" />
</div>
</form>
在我的searchresults.aspx.cs页面上,我有这个QueryString但它总是空的:
Response.Write(Request.QueryString["keywords"]);
我忘记了什么吗?
答案 0 :(得分:3)
那是因为QueryString用于GET
个请求,而不是POST
。您希望将Request.Form
用于发布的数据。
Response.Write(Request.Form["keywords"]);
阅读Request.Form Collection here的更多文档。
答案 1 :(得分:3)
您可以将初始表单标记更改为:
<form name="search" method="get" action="searchresults.aspx" id="searchform" runat="server">
如果你真的想出于某种原因使用查询字符串。
答案 2 :(得分:2)
帖子不会生成查询字符串。要访问帖子数据,您需要通过Form或Params属性来执行此操作。
Request.Form["keywords"];
Request.Params["keywords"];
答案 3 :(得分:1)
您要发布到searchresults.aspx,因此您需要通过Request.Form或Request.Params访问已发布的变量。
string keyWords = Request.Form["keywords"];
OR
string keyWords = Request.Params["keywords"];