2010-12-14 2 views
2

Im работая с ASP.Net Framework 4.0 и у меня есть этот код:ASPX отправить ошибку формы

форма ID = "form1" RUNAT = метод "сервер" = "получить" действие = "Profile.aspx"

// some code 

жерех: Кнопка Runat = "сервер" ID = "SubmitButton" Text = "Отправить"

Каждый раз, когда я нажмите на кнопку отправить я получаю эту ошибку:

Валидация ViewState MAC не удалось. Если это приложение размещено веб-фермой или кластером, убедитесь, что в конфигурации указан тот же алгоритм validationKey и validation. AutoGenerate не может использоваться в кластере.

любая идея, как исправить это ???

+0

Вы используете это в веб-ферме или кластере? – Oded

+0

Являются ли какие-либо из предварительных условий, упомянутых здесь, http://blogs.msdn.com/b/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx? – SWeko

+0

@Oded .. no @Sweko: я проверил ссылку раньше, и это не помогло мне – Grace

ответ

2

Это вызвано межстраничным POST (то есть вы отправляете ViewState первой страницы на вторую). Вы можете добавить PostBackUrl к кнопке, как это:

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

В качестве альтернативы вы можете обработать событие нажатия кнопки на первой странице, переместить некоторые из логики в этом обработчике и сделать Response.Redirect (то есть GET запрос) на вторую страницу. Правильное решение зависит от вашего конкретного случая.

+0

Я только что создал javascript и создал новую форму ... и я представил новую форму ... сработал ... плохо попробуйте теперь postbackurl. .. – Grace

1

Если вы хотите отправить сообщение обратно на свою текущую страницу, удалите в теге form method = "get" action = "Profile.aspx" атрибуты. И обрабатывайте данные с кодовых сообщений на своей странице.

Если вы хотите отправить данные на другую страницу, например Profile.aspx, используйте атрибут PostBackUrl элемента управления кнопки, например Stilgar написал для вас. А потом в Profile.aspx коде, чтобы получить доступ к управлению с текущей страницей используйте somethink так:

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

Надеется, что это будет полезно для вас!

С уважением, Dima.

Смежные вопросы