我正在使用asp.net MVC框架。在我的應用程序中,用戶必須登錄。當用戶名和密碼組合正確時,帶有菜單的div(或面板?)必須可見。但我該怎麼做?當我的名字面板pnlMenu,在我的控制,我不能這樣做:MVC中的C#句柄GUI
pnlMenu.visible = true;
所以,我怎麼有這樣做嗎?
我正在使用asp.net MVC框架。在我的應用程序中,用戶必須登錄。當用戶名和密碼組合正確時,帶有菜單的div(或面板?)必須可見。但我該怎麼做?當我的名字面板pnlMenu,在我的控制,我不能這樣做:MVC中的C#句柄GUI
pnlMenu.visible = true;
所以,我怎麼有這樣做嗎?
你應該做的是在控制器檢查,看是否有用戶登錄,並在ViewData的設定值,這樣:
ViewData["IsLoggedIn"] = true;
然後在您的視圖中,您可以根據此值設置方法的可見性。這樣,如果您稍後更改視圖或決定使用多個視圖,則它們都可以使用此值,並且視圖和控制器之間沒有任何耦合。
在您的視圖上創建方法或屬性,使您可以隱藏或顯示適當的控件?
然後,在你的控制器中,你可以訪問你的視圖的屬性或方法,不是嗎?
你不想在你的控制器的View中引用特定的「控件」,因爲MVC的一個想法是你可以用另一個實現(web/win/...)替換UI並且使用相同的控制器和應用程序邏輯。 然後,你只想描述你的View應該支持的操作,因此,在描述你的View必須支持的'contract'的接口中,你應該創建一個名爲'ChangeState(bool loggedIn)'的方法。
在控制器,可以在用戶已經登錄調用此方法。
如何在我的視圖上創建屬性?該視圖是沒有代碼隱藏文件的aspx? – Martijn 2009-04-17 08:44:52