如何从 _Layout.cshtml 中访问 HttpContext

问题描述 投票:0回答:3

项目:ASP.NET Core 7 MVC Web 应用程序

我已从控制器内向

HttpContext.Items
集合添加了一个对象,并且我正在尝试访问该对象以隐藏
_Layout.cshtml
中的一些菜单选项,但我收到错误

需要对象参考

如何设置参考?

@if (HttpContext.Items["CurrentUser"] == null) { }
asp.net-core-mvc razor-pages asp.net-core-7.0
3个回答
1
投票

您似乎将 HttpContext 作为静态调用:

enter image description here

您可以在 View 中获取 HttpContext 的实例,如下所示:

this.ViewContext.HttpContext

虽然你可以获得httpcontext,但它也无法满足你的要求。

你最好尝试使用ViewData/ViewBag

在控制器中:

ViewData["Key"]=somevalue

视图中:

@if(ViewData["Key"]==null){....}

0
投票

访问

RazorPage
Context
属性:

@if (Context.Items["CurrentUser"] == null) { }


0
投票

您可以按照以下方式做到这一点。环境:ASP.NET MVC .NET 8.0

@if (Context.User.Identity.IsAuthenticated)
{
    <div>
       Hello! @Context.User.Identity.Name
    </div>
}
© www.soinside.com 2019 - 2024. All rights reserved.