Форма и QueryStrings в ASP.Net - PullRequest
       16

Форма и QueryStrings в ASP.Net

1 голос
/ 12 августа 2011

У меня на 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"]);

Я что-то забыл?

Ответы [ 4 ]

3 голосов
/ 12 августа 2011

Вы можете изменить открывающий тег формы на:

<form name="search" method="get" action="searchresults.aspx" id="searchform" runat="server">

Если вы действительно хотите по какой-то причине использовать строку запроса.

3 голосов
/ 12 августа 2011

Это потому, что QueryString предназначен для GET запросов, а не POST. Вы хотите использовать Request.Form для опубликованных данных.

Response.Write(Request.Form["keywords"]); 

Подробнее с документацией для коллекции Request.Form здесь .

2 голосов
/ 12 августа 2011

Пост не генерирует строку запроса. Чтобы получить доступ к данным публикации, вам нужно сделать это через свойство Form или Params.

Request.Form["keywords"];
Request.Params["keywords"];
1 голос
/ 12 августа 2011

Вы публикуете в searchresults.aspx, поэтому вам нужно будет получить доступ к опубликованным переменным через Request.Form или Request.Params.

string keyWords = Request.Form["keywords"];

ИЛИ

string keyWords = Request.Params["keywords"];
...