ASP.NET/UpdatePanel/URL Rewriete“Viewstate验证失败。原因:viewstate提供了失败的完整性检查。”

时间:2014-03-03 21:46:07

标签: asp.net iis updatepanel viewstate url-rewrite-module

我们在url“/ casestudy /”中使用并更新了带有转发器的面板:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="LoadMore" />
            </Triggers>
            <ContentTemplate>
                <div class="row">
                <asp:Repeater ID="Repeater1" runat="server">                 
                    <ItemTemplate>  
                        <%# Eval("Title") %>
                    </ItemTemplate>
                </asp:Repeater>
                </div>
                <div class="row center">
                    <asp:Button runat="server" ClientIDMode="Static" OnClientClick="$(this).hide();" OnClick="Unnamed_Click" ID="LoadMore" Text="VIEW MORE" />                                  
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>

我们还使用此出站规则将URL“location / case-study”重写到同一页面:

<rule name="test" preCondition="IsHTML" enabled="true" patternSyntax="ECMAScript" stopProcessing="false">
      <match filterByTags="A" pattern="(.*)" negate="false" />
      <action type="Rewrite" value="/{C:1}{R:0}" />
      <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                    <add input="{R:0}" pattern="(location|this|that)" negate="true" />
                    <add input="{URL}" negate="true" pattern="\.axd$" />        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
      </conditions>
    </rule>
    <preConditions>
      <preCondition name="IsHTML">
        <add input="{URL}" negate="true" pattern="\.axd$" />
      </preCondition>
    </preConditions>

转发器在未应用出站重写时效果很好但我们在应用出站规则后收到“Viewstate验证失败。原因:视图状态提供了失败的完整性检查”。

我尝试过限制出站规则中的axd文件,将enableviewstatemac设置为false,更改表单操作并设置机器密钥。我错过了什么?我读到outbound规则不适用于updatepanel内容,但如果是这样,我该如何修复?

我感谢任何人的帮助和建议。

1 个答案:

答案 0 :(得分:0)

看看这里 - ASP.net URL rewrite based off query string ID

我认为您的方案可以使用页面路由处理。