【发布时间】:2018-01-30 09:06:36
【问题描述】:
我有一个局部视图 _Layout 被所有视图使用,每个视图都是一个强类型视图。 现在我的查询是,每个登录的用户都属于一个部门,我希望在特定部门的用户登录网站时隐藏一些选项卡(从部分视图中),并为所有其他用户显示所有选项卡。 我尝试使用 LINQ 查询在所有 ActionResult 中获取部门名称,存储在 ViewBag 中并将条件放入共享视图中:
@if (ViewBag.Department == "CUSTOMER SUPPORT")
{
//View all the tabs
}
else
{
//Restricted tabs
}
为此,我必须声明 ViewBag,并在每个 ActionResult 中进行 LINQ 查询以隐藏/显示选项卡,即使用户从共享视图上显示的选项卡导航到不同的页面。
我也尝试过将局部视图设为强类型,以便模型保存部门名称的值,但是当我导航到另一个强类型视图时它不起作用。 p>
我能否以某种方式全局声明一个变量来存储部门名称并调用共享视图,而不是在每个 ActionResult 上声明? 或者直接在没有控制器的共享视图上获取部门的名称,比如在共享视图上使用 LINQ?
【问题讨论】:
标签: c# asp.net-mvc linq asp.net-mvc-4 razor