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

Fer*_*cio 4 viewstate postback asp.net-3.5

我正在开发一个网络表单,只要它回发自己就可以正常工作.在Reports.aspx我有:

<form runat="server" method="post">
Run Code Online (Sandbox Code Playgroud)

但是,当我试图让它发布到不同的页面时:

<form runat="server" method="post" action="DisplayReport.aspx">
Run Code Online (Sandbox Code Playgroud)

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

Luk*_*keH 11

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

而不是这个:

<form runat="server" method="post" action="DisplayReport.aspx">
    <!-- form stuff goes here -->
    <asp:button runat="server" text="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

做这个:

<form runat="server">
    <!-- form stuff goes here -->
    <asp:button runat="server" text="Submit" postbackurl="DisplayReport.aspx" />
</form>
Run Code Online (Sandbox Code Playgroud)