2010-11-09 86 views
1

對不起,如果這是重複的,但過去兩個小時過去了,我一直在瘋狂。驗證ViewState MAC失敗

「驗證:

在ASP.NET MVC 1.0應用改變了母版頁後,當我試圖回傳,而不在由服務器驗證的強制性表單元素填充我不斷收到這個熟悉的錯誤視圖狀態的MAC失敗。 如果此應用程序由Web 場或羣集承載,確保 配置指定「 相同validationKey和驗證 算法。自動生成不能在集羣中使用 。

新頁面引用了很多帶有lightbox,superfish等的jQuery代碼。這可能是回發時的問題嗎?

如果我恢復到原來的主人,錯誤消失,我可以驗證表單域。兩位主人都位於同一條路徑上。

我知道很多其他人都遇到過這個問題,但我無法找到任何可以幫助我的東西。

謝謝。

編輯和添加

一點點調試後,我意識到,在母版頁指令:

<% Html.RenderAction("menu", "nav"); %> 

創造的問題。該指令要求控制器「nav」的「菜單」動作注入一個局部視圖Menu.ascx。如果我從新的母版頁中刪除此行,則一切正常。我的應用程序的左欄導航依靠此指令正常工作。有什麼方法可以解決這個問題嗎?非常神祕。

+0

好的,這個問題已經解決了。我使用(Html.BeginForm()){%>表單元素<% } %>將

表單元素
替換爲<%。這個伎倆。我不知道爲什麼使用Html助手會比使用好的舊標籤更好。任何人? – Dhruv 2010-11-09 17:25:13

+0

您使用的是MVC,所以不應該有runat的表單標籤,MVC中沒有viewstate。您可以使用常規窗體標籤,但不要使用runat =「server」。 – Slee 2010-11-09 19:51:47

回答

0

我確實遇到過同樣的問題two days ago。 :)

一個簡單的箱子重新啓動在我的情況下工作,所以我沒有進一步調查。

1

您是否在此頁面的任何位置使用Html.AntiForgeryToken()?有時當我在本地測試多個不同的站點和/或端口更改時,這種情況會發生在我身上。如果是這樣,我清除我的瀏覽器緩存,它工作得很好。

+0

這是我的情況:) – Lorenzo 2010-11-09 16:19:45

+0

謝謝你的迴應。 – Dhruv 2010-11-09 17:25:43