在主页面上验证viewstate MAC失败

时间:2009-12-04 03:44:05

标签: asp.net-mvc

我有一个主页,上面有一个搜索框和一个按钮。

我点击搜索按钮,然后转到结果页面。

结果页面也有一个搜索按钮,当我点击它时,我收到错误Validation of viewstate MAC failed

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

两个页面都包含上面的代码。

如果我对两个页面使用相同的母版页,我都不会收到错误。如果他们使用不同的母版页,我会收到错误。

我已关闭enableEventValidation和viewStateEncryptionMode,但我仍然收到错误。

更新

当我在两个视图中按下按钮时,调用ActionResult视图,收集数据,但当我说返回View(myFormViewModel)时,我收到错误。

就控制器而言,我认为一切都很好。

2 个答案:

答案 0 :(得分:1)

您的网页或母版页是否包含任何声明性控件?通常这些元素在标记中的某处具有 runat =“server”

如果您使用的是内置的反XSRF帮助程序,也可以看到此错误。如果你有一个用[ValidateAntiForgeryToken]装饰的动作,请确保发布到它的任何表格都包含对Html.AntiForgeryToken()的调用。

答案 1 :(得分:0)

啊,我的错。

我完全错过了第二个主人的<form标签,这意味着第二个主人的表格中有一个表格。

太激怒了!

对不起大家。