【发布时间】: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