通过在ASP.NET C中关闭视图状态来清理URL#

时间:2011-08-25 23:07:45

标签: c# asp.net forms viewstate

我有这个很长的网址,我不想要:

 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 个答案:

答案 0 :(得分:3)

您正在获取该垃圾,因为您在表单上将action方法声明为GET而不是POST。

答案 1 :(得分:3)

您正在使用GET作为表单的方法属性。这会将表单值作为查询字符串放在URL中。你应该改用“post”。

答案 2 :(得分:0)

为什么不启用viewstate?它将存储在隐藏字段中,否则ASP.Net将执行URL重写,附加视图状态。