Ste*_*han 5 httpcontext razor asp.net-core blazor-server-side
我在几个场景中使用了 dotnet core 3.1 Web 应用程序中的HttpContextfrom 。IHttpContextAccessor它总是按照我的预期设置。
但是,当注入Razor 组件HttpContext时,始终为 null 。IHttpContextAccessor
@inject IHttpContextAccessor HttpContextAccessor
<div>...</div>
@code {
protected override async Task OnInitializedAsync()
{
// here, HttpContextAccessor.HttpContext == null
}
public string GetSomeInfo()
{
// here, HttpContextAccessor.HttpContext == null
}
}
Run Code Online (Sandbox Code Playgroud)
我已经像这样IHttpContextAccessor添加了Startup.cs/ConfigureServices()
services.AddHttpContextAccessor();
Run Code Online (Sandbox Code Playgroud)
为什么在HttpContext null这里?
小智 2
我通常会向 razor 组件添加一个参数。假设您在 HttpContext.State 中存储了一个字符串并希望在 Razor 组件中显示它:
反剃须刀:
<span>Application Name: @AppTitle</span>
@code {
[Parameter]
public HttpContext MyContext { get; set; }
public string AppTitle => MyContext.State.GetString("APP_KEY");
}
Run Code Online (Sandbox Code Playgroud)
剃刀页面中的组件:
<component type="typeof(Counter)" render-mode="Static" param-MyContext="@HttpContext" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3545 次 |
| 最近记录: |