aspx提交表单错误

时间:2010-12-14 08:50:54

标签: c# asp.net

我正在使用asp.net framework 4.0,我有这个代码:

form id =“form1”runat =“server”method =“get”action =“Profile.aspx”

 // some code

asp:Button runat =“server”ID =“SubmitButton”Text =“Submit”

每次我点击提交按钮我都会收到此错误:

对viewstate MAC的验证失败。如果此应用程序由Web场或群集托管,请确保配置指定相同的validationKey和验证算法。 AutoGenerate无法在群集中使用。

任何想法如何解决它?

2 个答案:

答案 0 :(得分:2)

这是由跨页POST引起的(即您将第一页的ViewState提交到第二页)。您可以将PostBackUrl添加到按钮中,如下所示:

<asp:Button runat="server" ID="SubmitButton" Text="Submit" PostBackUrl="~/WebForm2.aspx" />

或者,您可以在第一页中处理按钮的click事件,移动此处理程序中的一些逻辑并对第二页执行Response.Redirect(即GET请求)。正确的解决方案取决于您的具体情况。

答案 1 :(得分:1)

如果您要将帖子发送回当前页面,请在表单标记中删除method =“get”action =“Profile.aspx”属性。并处理来自您网页的代码隐藏帖子数据。

如果你想在另一个页面上发送数据,比如Profile.aspx,请使用按钮控件的PostBackUrl属性,比如 Stilgar 为你写的。然后在Profile.aspx代码隐藏中从当前页面访问控件使用这样的一些想法:

If(Page.PreviousPage != null)
{
    var textBox = Page.PreviousPage.FindControl("ControlID") as TextBox;
    if(textBox != null)
    {
        //Use your logic here
    }
}

希望它对你有所帮助!

最好的问候,迪马。

相关问题