2010-01-08 48 views
0

希望我能解釋一下我自己... 我在主頁面有一個登錄控件。當您單擊登錄按鈕時,您將轉到accountcontroller的登錄方法,該方法會檢查您的憑證。無論它是否正常,您都將被重定向到帶有重定向動作(「home」,「index」)的主頁。 但是,如果登錄失敗,我想向用戶顯示一條消息。 所以我試圖在登錄方法(viewdata [「logon」] =「failed」)中設置viewdata,然後在masterpage中檢查此viewdata是否存在,如果是,則使用一些文本渲染span。 但據我瞭解,viewdata不會保留與重定向到行動方法。asp.net mvc:在2個控制器之間傳遞信息到視圖

什麼是確保我的登錄方法可以以某種方式通知我的母版頁視圖登錄失敗的最佳方法是什麼?

Michel

+0

關於TempData的更多信息請參閱: http://www.persistall.com/archive/2007/12/22/asp.net-mvc-a-ha-moment-tempdata--flash.aspx []'s – 2010-01-08 10:15:51

+0

看到這個項目發送FlashMessages在您的應用程序 http://maff.ailoo.net/2009/06/build-a-flashmessenger-system-in-aspnet-mvc/我想這可以幫助你! []的 – 2010-01-08 10:11:23

回答

3

如果我正確地讀你的問題,你的問題是你需要在你的動作中設置一個值,在RedirectToAction之後需要使用。您需要在Tempdata中設置密鑰。

TempData["MessageToUser"] = "I dont let you in dude!" 

TempData的仍然是可用的後一個重定向。

+1

是的,這是正確的。但tempdata存儲在會話中,不是嗎? 應用程序的其餘部分沒有sessionstate,我不認爲我被允許引入這個sessionstate ... – Michel 2010-01-08 10:55:20

+0

是的你是對的。 – 2010-01-08 11:04:00

1

結賬MvcContribQueen3某處提到他們已經治好了這個
(在重定向之間傳遞信息)。

但是最好爲身份驗證創建單獨的視圖。那麼問題就會消失。

+0

嗯,不錯。也許是一個Ajax形式,然後我沒有回傳和一個單獨的視圖。 – Michel 2010-01-08 11:57:27

+0

用於身份驗證表單的AJAX也不是個好主意。 – 2010-01-08 12:20:16

+0

嗯,有道理,認爲我會對succes做一個redirecttoaction,以及一個失敗的返回視圖(「」)。在後一種情況下,viewdata將被保存 – Michel 2010-01-08 15:36:38

相關問題