【问题标题】:ASP.NET/UpdatePanel/URL Rewriete "Viewstate verification failed. Reason: The viewstate supplied failed integrity check."ASP.NET/UpdatePanel/URL Rewriete “视图状态验证失败。原因:视图状态提供的完整性检查失败。”
【发布时间】:2014-03-03 21:46:07
【问题描述】:

我们正在使用和更新在 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>

当未应用出站重写但我们在应用出站规则后在页面上收到“视图状态验证失败。原因:视图状态提供的完整性检查失败”时,中继器工作得很好。

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

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

【问题讨论】:

  • 你必须这样重写 URL 吗?您可以改用页面路由,它可以在 webforms 应用程序中使用。这种组合我从来没有遇到过任何问题。
  • 根据业务规则,可见 URL 需要在前面加上“位置”。 URL 中的位置一词可以替换为特许经营的位置/城市名称。

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


【解决方案1】:

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

我认为您的场景可以使用页面路由来处理。

【讨论】:

  • 我们使用出站规则重写页面上的可见链接。路由是否允许出站重写?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多