- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我环顾四周,似乎找不到合适的解决方案来解决我的问题。
问题
在我的布局中,我希望能够根据数据库中的内容选择在运行时是否存在导航项:
当前布局(导航栏)
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Dashboard", "Index", "Dashboard")</li>
<li>@Html.ActionLink("NzbGet", "Index", "NzbGet")</li>
<li>@Html.ActionLink("Plex", "Index", "Plex")</li>
<li>@Html.ActionLink("Settings", "Index", "Settings")</li>
</ul>
</div>
我如何能够决定显示哪一个:
public PrincipleExtension(ISettingsService<SabNzbSettingsDto> sab)
{
SabService = sab;
}
private ISettingsService<SabNzbSettingsDto> SabService { get; set; }
public bool IsApplicationEnabled(IPrincipal principal, Applications application)
{
switch (application)
{
case Applications.SabNZBD:
return SabService.GetSettings().Enabled;
//...
}
return false;
}
现在 PrincipleExtension
最初是 IPrincipal
上的扩展方法。但现在这是不可能的,因为我正在使用 IoC 容器并且不想对任何依赖项进行硬编码。
所以在它是静态方法之前我可以完成 User.IsApplicationEnabled(Applications.SabNZBD)
。
我现在如何检查应用程序在布局中是否已将启用标志设置为 true?有什么想法吗?
谢谢。
最佳答案
将您的菜单 HTML 移动到 PartialView 并让它作为 ActionResult 从 Controller Action 返回。
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
@foreach (var item in Model)
{
<li><a href="@item.Url">@item.Name</a></li>
}
</ul>
</div>
让 Controller 确定要显示的菜单项并将新模型发送到 PartialView。
public ActionResult ProductsMenu()
{
var listOfAvailableProducts = GetAvialableProducts(Principal); //to implement elsewhere
var productsMenuItems = new List<ProductMenuItem>();
for(var i in listOfAvailableProducts)
{
productsMenuItems.Add(new ProductMenuItem
{
Id = i.id,
Name = i.name,
Url = "//example.com/there"
}
);
}
return PartialView("/path/to/_ProductsMenu.cshtml", productsMenuItems);
}
然后在 _Layout.cshtml Razor View 中这样调用它:
@{
Html.RenderAction("ActionName","ControllerName");
关于c# - _Layout.cshtml 上的 MVC 决策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071297/
我有一个分为多个区域的 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
我是一名优秀的程序员,十分优秀!