我需要在页面(.cshtml)中访问HttpContext,尤其是访问请求和Cookie。尽管可用,但HttpContextAccessor始终在其HttpContext属性中存储一个值。

任何想法将不胜感激。

提前致谢。

编辑:我使用的Blazor版本是:0.7.0。

最佳答案

将以下内容添加到Blazor.Web.App.Startup.cs:

services.AddHttpContextAccessor();
您还需要<component-name>.cshtml
@using Microsoft.AspNetCore.Http
@inject IHttpContextAccessor httpContextAccessor
注意:在编写此答案时,如上所述已完成对HttpContext的访问。从那时起,Blazor一直在飞速发展,并且发生了根本变化。绝对不建议使用上述用法,但是,如果您从.cshtml页面访问HttpContext,则仍然可以执行上述操作,这是正确且正确的。这没有改变...因此,即使没有将IHttpContextAccessor添加到DI容器中,也可以访问HttpContext的唯一位置是_Host.cshtml文件,该文件是Razor Pages文件,扩展名为.cshtml。当执行该文件中的代码时,Blazor仍然没有出生,并且该文件的执行将服务于Blazor Server App。请参阅this answer有关如何正确执行的操作...
希望这可以帮助...

关于cookies - 如何在服务器端Blazor中访问HttpContext?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53817373/

10-13 09:12