[英]Use two themes in asp.net mvc
我想为管理面板使用一个主题,一个主题是另一个主题,我想向访问者展示。 我的意思是说网站的访问者和管理员应该有不同的主题。 在asp.net MVC中怎么办? 因为在mvc中,我们只有一个文件_Layout.cshtml,在这里我们仅需附加一个主题。
您可以根据需要创建任意多个布局文件。 因此,根据您的情况,最好创建一个管理区域,该区域具有自己的布局页面,您可以在其中使用管理主题css文件
区域是为此所需的相关功能和文件(控制器,视图,样式,代码等)的逻辑分组。区域提供了一种将大型Web应用程序划分为较小功能分组的方法。
对于您的普通访问者,他们的页面/视图使用默认布局,对于admin用户,他们从具有其自身布局的admin区域获取呈现的视图。
对于来自管理区域(甚至_Viewstart.cshtml
)的_Viewstart.cshtml
,您可以显式指定管理布局
@{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
在共享文件夹中定义第二个布局,使用另一个名称,例如_AdminLayout等。在其中调用@RenderBody()函数,现在您可以通过不同的方式渲染布局,
1.在视图中定义布局:
@{
ViewBag.Title = "View_Title";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
2.从ActionResult渲染布局页面(使用Controller。查看扩展方法):
public ActionResult Action_Result_Name()
{
return View("Action_Result_Name","_AdminLayout");
}
3.使用_ViewStart.cshtml页面:
_ViewStart.cshtml页面,用于定义MVC应用程序的默认布局页面。
@{
layout = "~/Views/Shared/_AdminLayout.cshtml";
}
如果您使用的是Identity框架,则也可以根据条件定义布局
@{
if (User.IsInRole("Admin"))
{
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
else
{
Layout = "~/Views/Shared/_Layout.cshtml";
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.