【发布时间】:2010-11-09 16:11:08
【问题描述】:
对不起,如果这是重复的,但过去两个小时我一直为此发疯。
在 ASP.NET MVC 1.0 应用程序中更改母版页后,当我尝试回发而不填写服务器验证的强制性表单元素时,我不断收到这个熟悉的错误:
“视图状态 MAC 的验证失败。 如果此应用程序由 Web 托管 场或集群,确保 配置指定 相同的validationKey和validation 算法。无法使用自动生成 在一个集群中。”
新页面引用了很多带有灯箱、超级鱼等的 jQuery 代码。在进行回发时会不会有问题?
如果我恢复到原来的主人,错误就会消失,我可以验证表单字段。两个 master 都位于同一路径中。
我知道很多其他人都面临过这个问题,但我找不到任何可以帮助我的东西。
谢谢。
已编辑和添加
经过一点调试,我意识到母版页中有一个指令:
<% Html.RenderAction("menu", "nav"); %>
正在制造问题。该指令要求控制器“nav”的“菜单”动作注入部分视图 Menu.ascx。如果我从新的母版页中删除这一行,一切正常。我的应用程序的左栏导航依赖此指令才能正常工作。有什么办法可以解决这个问题吗?很神秘。
【问题讨论】:
-
好的,已经解决了。我使用 (Html.BeginForm()) { %> 表单元素 将 替换为
-
你使用的是MVC,所以不应该有带有runat的form标签,MVC中没有viewstate。您可以使用常规表单标签,但不要使用 runat="server"。
标签: c# .net asp.net jquery asp.net-mvc