我有一个主页,上面有一个搜索框和一个按钮。
我点击搜索按钮,然后转到结果页面。
结果页面也有一个搜索按钮,当我点击它时,我收到错误Validation of viewstate MAC failed
<% using( Html.BeginForm("Result", "Search" )){ %>
<%= Html.TextBox("SearchText", Model.SearchText)%>
<input value="" type="submit"/>
两个页面都包含上面的代码。
如果我对两个页面使用相同的母版页,我都不会收到错误。如果他们使用不同的母版页,我会收到错误。
我已关闭enableEventValidation和viewStateEncryptionMode,但我仍然收到错误。
更新
当我在两个视图中按下按钮时,调用ActionResult视图,收集数据,但当我说返回View(myFormViewModel)时,我收到错误。
就控制器而言,我认为一切都很好。
答案 0 :(得分:1)
您的网页或母版页是否包含任何声明性控件?通常这些元素在标记中的某处具有 runat =“server”。
如果您使用的是内置的反XSRF帮助程序,也可以看到此错误。如果你有一个用[ValidateAntiForgeryToken]装饰的动作,请确保发布到它的任何表格都包含对Html.AntiForgeryToken()的调用。
答案 1 :(得分:0)
啊,我的错。
我完全错过了第二个主人的<form
标签,这意味着第二个主人的表格中有一个表格。
太激怒了!
对不起大家。