【问题标题】:"Validation of viewstate MAC failed" on postback to a different page回发到不同页面时的“视图状态 MAC 验证失败”
【发布时间】:2009-09-09 10:48:27
【问题描述】:

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

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

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

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

我收到“验证视图状态 MAX 失败”错误。我尝试在 web.config 中设置机器密钥并禁用视图状态,但似乎没有任何帮助。我是否被困回同一页面?如果是这样,action 属性的意义何在?

【问题讨论】:

    标签: asp.net-3.5 postback viewstate


    【解决方案1】:

    您可以提交到不同的页面,但您需要使用按钮的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>
    

    【讨论】:

    • 这还没有说明 Action 属性的意义何在?
    • 你拯救了我的一天,向你致敬
    【解决方案2】:

    应该可以使用跨页回传,您只需将它们设置为这样。看这个链接http://csharpdotnetfreak.blogspot.com/2009/08/cross-page-posting-in-aspnet.html

    【讨论】:

      猜你喜欢
      • 2010-09-24
      • 2011-12-18
      相关资源
      最近更新 更多