回发到另一个页面“验证viewstate MAC失败”

时间:2009-09-09 10:48:28

标签: asp.net-3.5 postback viewstate

我正在处理一个网络表单,只要它回发自己就能正常工作。在Reports.aspx中我有:

<form runat="server" method="post">

但是,当我尝试将其发布到其他页面时:

<form runat="server" method="post" action="DisplayReport.aspx">

我收到“验证viewstate MAX失败”错误。我已经尝试在web.config中设置机器密钥并禁用viewstate,但似乎没有任何帮助。我被贴回到同一页面吗?如果是,那么action属性的重点是什么?

2 个答案:

答案 0 :(得分:11)

您可以提交到其他页面,但需要使用按钮的PostBackUrl属性,而不是表单的action属性。

而不是:

<form runat="server" method="post" action="DisplayReport.aspx">
    <!-- form stuff goes here -->
    <asp:button runat="server" text="Submit" />
</form>

这样做:

<form runat="server">
    <!-- form stuff goes here -->
    <asp:button runat="server" text="Submit" postbackurl="DisplayReport.aspx" />
</form>

答案 1 :(得分:0)

应该提供跨页回发帖,您只需将其设置为可用。请参阅此链接http://csharpdotnetfreak.blogspot.com/2009/08/cross-page-posting-in-aspnet.html