[英]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.