Очистите URL-адреса, отключив просмотр в ASP.NET C # - PullRequest
1 голос
/ 26 августа 2011

У меня есть этот длинный URL, который я не хочу:

 http://localhost:56563/TablesLibraryWebsite/searchresults.aspx?__VIEWSTATE=%2FwEPDwUKMTY3OTkxNDkxMWQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFI2N0bDAwJGNwaFJpZ2h0UGFuZWwka2V5d29yZFNlYXJjaEdP&__EVENTVALIDATION=%2FwEWAgLoquEjAvXq39ML&type=search&keywords=Enter+keywords+%2F+publication+number&population=0&datasources=0&year=0&ctl00%24cphRightPanel%24keywordSearchGO.x=3&ctl00%24cphRightPanel%24keywordSearchGO.y=8

Моя форма объявлена ​​так:

<form name="search" method="get" action="searchresults.aspx" id="searchform" 
    runat="server" enableviewstate="false">
    <input type="hidden" name="type" value="search" />
    <div class="searchField">
        <input name="keywords" type="text" id="keywordSearch"
            name="keywordSearch" value="Enter keywords / publication number"
            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" />                                 
        <asp:Literal ID="ltrlYears" 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"
            EnableViewState="false" onclick="keywordSearchGO_Click" />
    </div>
</form>                 

Почему я все еще получаю этот мусор?

В моем web.config также есть страницы enableviewstate = "false".

Ответы [ 3 ]

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

Вы получаете этот мусор, потому что вы объявили метод действия в форме как GET вместо POST.

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

Вы используете GET в качестве атрибута метода вашей формы. Это поместит значение формы в URL как строки запроса. Вместо этого вы должны использовать «post».

0 голосов
/ 26 августа 2011

Почему вы не включаете viewstate? Он будет храниться в скрытом поле, иначе ASP.Net выполнит перезапись URL-адреса, добавив состояние просмотра.

...