- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序将有不同的角色,其中一个角色是全局管理员,它有添加用户、添加公司等选项。
我购买的模板有一个 _layout.cshtml,但我需要根据用户的角色加载不同的模板。
菜单非常不同。
我的观点开始
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
和我的 layouts.cshtml
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>INSPINIA | @ViewBag.Title</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700' rel='stylesheet' type='text/css'>
<!-- Add local styles, mostly for plugins css file -->
@if (IsSectionDefined("Styles"))
{@RenderSection("Styles", required: false)}
<!-- Add jQuery Style direct - used for jQGrid plugin -->
<link href="@Url.Content("~/Scripts/plugins/jquery-ui/jquery-ui.css")" rel="stylesheet" type="text/css" />
<!-- Primary Inspinia style -->
@Styles.Render("~/font-awesome/css")
@Styles.Render("~/Content/css")
</head>
<body>
<!-- Skin configuration box -->
@Html.Partial("_SkinConfig")
<!-- Wrapper-->
<!-- PageClass give you ability to specify custom style for specific view based on action -->
<div id="wrapper" class="@Html.PageClass()">
<!-- Navigation -->
@Html.Partial("_Navigation")
<!-- Page wraper -->
<div id="page-wrapper" class="gray-bg @ViewBag.SpecialClass">
<!-- Top Navbar -->
@Html.Partial("_TopNavbar")
<!-- Main view -->
@RenderBody()
<!-- Footer -->
@Html.Partial("_Footer")
</div>
<!-- End page wrapper-->
<!-- Right Sidebar -->
@Html.Partial("_RightSidebar")
</div>
<!-- End wrapper-->
<!-- Section for main scripts render -->
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/plugins/slimScroll")
@Scripts.Render("~/bundles/inspinia")
<!-- Skin config script - only for demo purpose-->
@Scripts.Render("~/bundles/skinConfig")
<!-- Handler for local scripts -->
@RenderSection("scripts", required: false)
</body>
</html>
一切都很完美,但我需要创建另一个 layouts.cshtml 并引用不同的导航局部 View ,这就是问题所在,
当用户属于特定角色时,如何让应用程序加载特定的 layouts.csthml?
最佳答案
此答案假定您在 MVC4 中使用 SimpleMembership 的默认角色管理器:
如果它只是布局的特定部分,您可以使用 Razor。将其放在您的菜单代码所在的位置...(可能在 _Navigation 中):
@if (Roles.IsUserInRole("GlobalAdmin"))
{
@Html.ActionLink("Admin only link", "ActionName", "ControllerName")
@Html.ActionLink("Another admin link", "ActionName", "ControllerName")
}
如果是来自特定的action方法,可以指定布局:
string layoutName = Roles.IsUserInRole("GlobalAdmin") ? "_LayoutAdmin" : "_Layout";
return View(model, layoutName);
您可以通过使用自定义 actionresult 甚至 action filter 来自动执行最后一种方法。
关于c# - 如何根据角色加载不同的 _layout.cshtml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538346/
我有一个分为多个区域的 ASP.NET MVC 4 站点。每个区域都有一个Views/Shared/_Layout.cshtml引用公共(public)共享布局的 View 。在通用布局中,我有一个侧
我目前正在建立一个包含 5 个不同网站的大型项目。所有这些站点都具有相同的共同“框架”(_layout.cshtml in Views/Shared in root)。 我已经建立了一个结构,其中每个
At _Layout.cshtml used by all pages, when any background image is selected, I want to display the se
您好,我是 Svelte、Sapper 和 Express 的新手。 问题: 我正在使用 Sappers _layout.html 来显示 2 个应该显示在所有页面上的组件(标题和菜单),除了登录页面
我的应用程序将有不同的角色,其中一个角色是全局管理员,它有添加用户、添加公司等选项。 我购买的模板有一个 _layout.cshtml,但我需要根据用户的角色加载不同的模板。 菜单非常不同。 我的观点
我有一个使用 Bootstrap 样式的 ASP.NET MVC 4 元素。 我的 _Layout 文件基本是这样的:
我正在使用 .NET Core 2.0 MVC。如果我想为不同的页面使用不同的 js 文件,我该如何从登录页面注入(inject)这个 js 引用,例如,在加载登录页面时,将其注入(inject)其他
我开始用 jekyll 和 github pages 制作我的博客。 我在基本主题上做得很好,但我想应用侧边栏属性,所以我从https://idratherbewriting.com/document
我正在尝试在 _Layout.cshtml 上应用本地化 _Layout.cshtml @using Microsoft.AspNetCore.Http.Extensions @using Micro
我正在 ASP.NET Core 中开发一个 Web 应用程序,我想知道是否有一种方法可以根据我从 MySQL 数据库调用的数据动态更新 _Layout.cshtml 文件中的内容,就像您使用普通 R
我在谷歌上搜索了很长时间,但仍然无法得到正确的答案。我正在使用身份声明进行用户身份验证,我的 _Layout.cshtml 页面中需要一些声明值。但是,我可以检索自定义身份声明值,但不能检索内置值。
我有一个使用共享 _Layout 的 View ,其中引用了所有样式表和 JavaScript 文件。 在我的导航栏上有一个下拉菜单: Navigate 但是当我单击下拉菜单时,没有任何反应
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我想在我的 SharePoint 12 hive/template/layouts/TelephoneBookList/test.aspx 文件中使用母版页文件(如果有意义,则为站点的)。但是,每当我
请对我温柔一点。我已经阅读了该网站上其他人的大量 MVC 答案,但现在我遇到了一些我找不到答案的地方。 通过类(class),我创建了一个 LoginDetails 项目,其中一个 View 模型从
我正在使用 x.PagedList在我的 ASP.NET MVC 页面中使用分页。我对插件的唯一问题是,当我在页面之间导航时它使用了页面刷新。 为了避免我使用 jQuery 调用来替换页面内容,如 a
在我的 _Layout.cshtml 页面的头部部分,我有这行代码... 我检查了脚本目录,jquery-ui 就在那里。我是 MVC 的新手,尤其是 MVC4。我曾与 3 合作过,但我不相信与我记
有人能告诉我如何添加 _layout 页面以使我的所有页面居中对齐并根据分辨率调整为 100% 吗?这可能吗。我认为它可能在: 谢谢! .container { width:9
我对 ASP.NET MVC 比较陌生,所以这个问题让我很困惑。 当客户访问我的网站时,他们会看到一个登录屏幕。我正在使用布局/母版页来保持整个网站的外观一致。问题是我不想在客户端登录后仅在后续页面上
我是一个非常菜鸟的 CSS 编码器,但我希望如果我在导航栏中添加另一行或一个更高的元素,使其更高,将主体向下推。相反,它覆盖了主体的顶部,我必须增加主体的填充以将其顶部向下推到导航栏下方。 什么 CS
我是一名优秀的程序员,十分优秀!