Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在布局视图中使用dbcontext(在.NETMVC、实体框架中)_.net_Entity Framework_Model View Controller - Fatal编程技术网

如何在布局视图中使用dbcontext(在.NETMVC、实体框架中)

如何在布局视图中使用dbcontext(在.NETMVC、实体框架中),.net,entity-framework,model-view-controller,.net,Entity Framework,Model View Controller,在我的.NET(MVC,Entity framework)应用程序中,我对数据库拥有一些用户权限。例如属性“CanCreateNewContact”。“新联系人”按钮我也有在页面菜单(在布局视图)。如果用户没有必要的权限,我想知道如何隐藏这个按钮。在经典视图中,我可以从数据库(通过EntityFramework)读取控制器中的权限。但是如何在布局视图中执行此操作?您可以从布局视图中检查ViewBag中的值,并使用过滤器根据数据库自动设置值(您不需要对每个操作执行此查询) 您的布局将如下所示: @

在我的.NET(MVC,Entity framework)应用程序中,我对数据库拥有一些用户权限。例如属性“CanCreateNewContact”。“新联系人”按钮我也有在页面菜单(在布局视图)。如果用户没有必要的权限,我想知道如何隐藏这个按钮。在经典视图中,我可以从数据库(通过EntityFramework)读取控制器中的权限。但是如何在布局视图中执行此操作?

您可以从布局视图中检查ViewBag中的值,并使用过滤器根据数据库自动设置值(您不需要对每个操作执行此查询)

您的布局将如下所示:

@{
    var canDomeSomething =  ViewBag.CanDoSomething !=null && (bool) ViewBag.CanDoSomething;
}
@if (canDomeSomething)
{
    <button></button>
}
else
{
    <span>Not button</span>
}

如果是我,我会考虑创建一个导航模型。它根据用户拥有的权限填充链接等。模型中只存在用户可以访问的内容。然后,您的导航视图就是所述模型的简单呈现。谢谢。我不知道我可以在布局视图中使用标准控制器中的Viewbag。
@{
    var canDomeSomething =  ViewBag.CanDoSomething !=null && (bool) ViewBag.CanDoSomething;
}
@if (canDomeSomething)
{
    <button></button>
}
else
{
    <span>Not button</span>
}
    [UserRole]
    public ActionResult Home()
    {
        return View();
    }