c# - If语句动态决定使用哪个母版页
本文关键字:母版页 决定 If 语句 动态 | 更新日期: 2023-09-27 18:18:11
在我的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视图时。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动态更改。
我建议在中选择而不是选择要使用的母版文件