2009-12-04 2 views
0

У меня есть домашняя страница с полем поиска и кнопкой на ней.Проверка MAC-адреса viewstate не удалось на главных страницах

Я нажимаю кнопку поиска, и я перехожу на страницу результатов.

страница результатов также имеет кнопку поиска, и когда я нажимаю его я получаю сообщение об ошибке Validation of viewstate MAC failed

<% using(Html.BeginForm("Result", "Search")){ %> 
<%= Html.TextBox("SearchText", Model.SearchText)%> 
<input value="" type="submit"/> 

Обе страницы содержат выше фрагмент кода.

Если я использую одну и ту же главную страницу для обеих страниц, я не получаю ошибку. если они используют разные мастер-страницы, я получаю ошибку.

Я отключил enableEventValidation и viewStateEncryptionMode, и я все еще получаю ошибку.

UPDATE

При нажатии на кнопку в обоих видах, виды ActionResult называется, данные собираются, но когда я говорю вернуться View (myFormViewModel) Я получаю сообщение об ошибке.

Все, что касается контроллера, я думаю.

+0

Используете ли вы какую-либо реализацию, если не используется cookie для членства и управления пользовательским состоянием ?. Его звук странный, потому что MVC не должен использовать ViewState. – JOBG

+0

Нет, я не использую какое-либо членство в данный момент. не реализовано, что на этом раннем этапе. – griegs

+0

mmm .. Вы добавили главную страницу MVC View или традиционную главную страницу ?, i thnk она должна быть MVC, если это не проблема, я действительно не знаю, что это может быть, особенно потому, что это связано с ViwState .. – JOBG

ответ

1

На каких страницах или основных страницах содержатся декларативные элементы управления? Как правило, это элементы, которые имеют runat = "server" где-то в разметке.

Вы также можете увидеть эту ошибку, если используете встроенные анти-XSRF-помощники. Если у вас есть действие, украшенное [ValidateAntiForgeryToken], убедитесь, что любая публикация формы содержит вызов Html.AntiForgeryToken().

+0

Ничего из перечисленного. Я не использую runat = "server" с моими проектами mvc. Фактически, мастер-страницы вообще не содержат никаких элементов управления. – griegs

+0

Я просто попробовал <% = Html.AntiForgeryToken()%> в сочетании с [ValidateAntiForgeryToken] и не пошел. – griegs

+0

Идти, чтобы дать вам ответ, потому что вы были правы. Должен был прочитать мой код более внимательно. – griegs

0

Ах, моя вина.

Я полностью пропустил тег <form на втором хозяине, что означало наличие формы в форме на втором хозяине.

Так бесит!

Извините.

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