代码之家  ›  专栏  ›  技术社区  ›  Ferruccio

回发到其他页面时“验证视图状态MAC失败”

  •  4
  • Ferruccio  · 技术社区  · 15 年前

    我正在研究一个web表单,只要它回发就可以正常工作。在reports.aspx中,我有:

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

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

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

    我得到“验证viewstate max失败”错误。我试过在web.config中设置机器密钥和禁用viewstate,但似乎没有什么帮助。我是不是坚持要回同一页?如果是,那么动作属性的意义是什么?

    2 回复  |  直到 15 年前
        1
  •  11
  •   LukeH    15 年前

    您可以提交到其他页面,但需要使用 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>
    
        2
  •  0
  •   andrewWinn    15 年前

    跨页面的帖子应该是可用的,你只需要设置它们就可以了。看到这个链接 http://csharpdotnetfreak.blogspot.com/2009/08/cross-page-posting-in-aspnet.html