簡體   English   中英

C# - If語句動態確定使用哪個母版頁 - MVC 2

[英]C# - If statement to dynamically determine which master page to use - MVC 2

我的C#MVC應用程序中有兩個母版頁。 我希望能夠做的是根據用戶的角色使用一個或另一個。 類似的東西(顯然有更多的驗證等):

<% if(User.IsInRole("One")) { %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/One.Master"
    Inherits="System.Web.Mvc.ViewPage<MyApp.Data.ProductData>" %>
<% } else if { %>
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Other.Master"
    Inherits="System.Web.Mvc.ViewPage<MyApp.Data.ProductData>" %>
<% } %>

我已經看到了可以對頁面元素進行此操作的答案,例如菜單,圖像等。是否可以對整個母版頁執行此操作? 在我的情況下,根據角色,將使用不同的CSS,圖像,顏色,因此有必要使用不同的母版頁。

如果有人能幫忙我會非常感激,或者如果有人有任何替代(可能更好)的解決方案,我也將不勝感激。

謝謝。

正如您在ASP.net MVC應用程序中使用ASPX View一樣。 ASP.net MVC ASPX(Webform)視圖仍然源自Page類,因此您可以在aspx視圖中使用以下代碼。

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage"  %>
<script language="C#" runat="server">
    protected void Page_PreInit(object sender, EventArgs e)
    {
        if (User.IsInRole("Admin"))
        {
            this.MasterPageFile = "~/Views/Shared/Site2.Master";
        }
        else
        {
            this.MasterPageFile = "~/Views/Shared/Site.Master";
        }
    }
</script>

您可以通過ViewMasterPage.MasterPageFile動態更改它。

我建議您的母版頁文件中進行選擇,而不是選擇要使用的母版頁文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM