我有一個名爲LogOnUserControl的局部視圖/用戶控件,它顯示在我的網站上的一個側欄(在Site.Master中定義)中。我也有一個單獨的LogOn視圖,它也呈現LogOnUserControl。ASP.NET MVC:如何呈現除一個視圖之外的所有視圖的局部視圖?
我不想在登錄鑑於LogOnUserControl的兩個實例,因爲它只是普通的混亂,所以我現在的想法是,包括在LogOnUserControl的條件,如
// Semi-pseudocode
if (!Request.IsAuthenticated) && View.Name != "LogOn")
。
這感覺不對,因爲局部視圖現在知道LogOn視圖。此外,我無法找到如何獲得視圖的名稱,這增強了我做錯事情的感覺! :-)
編輯:還有一個複雜的問題,就是LogOn視圖和Site.Master中的側欄都使用了相同的局部視圖。
+1。帶上您的母版頁,並用另一個ContentPlaceHolder將當前的調用替換爲LogOnUserControl。然後創建另外兩個母版頁,從「Site.master」嵌套的「Main.master」和「Logon.master」。 Main.master會將內容添加到新的ContentPlaceHolder,但Logon.master不會。問題解決了。 – Portman 2009-04-24 23:40:32
我跟着波特曼的評論(+1的細節!:-),但我得到一個錯誤「無法找到ContentPlaceHolder'MainContent'在母版頁'/Views/Shared/LogOn.Master'」。我將LogOn視圖設置爲使用LogOn.master頁面。缺少的ContentPlaceHolder在Site.Master中,LogOn.Master嵌套於...我做錯了什麼? – alastairs 2009-04-25 21:30:28