You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor的AuthorizeRouteView组件中context属性是在哪里定义的?

context变量的来源说明

这个变量是Blazor泛型渲染片段RenderFragment<T>的默认隐式参数,不需要你手动声明定义,是AuthorizeRouteView组件渲染对应片段时自动传入的:

  • AuthorizeRouteView的NotAuthorized属性本身就是类型为RenderFragment<AuthenticationState>的组件参数,泛型约束的类型就是AuthenticationState
  • Blazor框架约定,使用泛型RenderFragment<T>时如果没有手动指定参数名,默认的参数变量名就是context,可以直接在片段内部调用

如果不习惯用默认名,你也可以手动指定参数名,写法如下:

<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)">
    <!-- 手动指定参数名为authState -->
    <NotAuthorized Context="authState">
        @if (!authState.User.Identity!.IsAuthenticated)
        {
            @*<RedirectToLogin />*@
        }
        else
        {
            <p>You are not authorized to access this resource.</p>
        }
    </NotAuthorized>
</AuthorizeRouteView>

底层的执行逻辑很简单:当路由授权校验判定为未授权状态时,AuthorizeRouteView内部会先获取到当前请求的AuthenticationState实例,渲染NotAuthorized片段时会把这个实例作为参数传递给你写的片段内容,你通过context或者自定义的参数名就能直接读取到对应的值。

内容的提问来源于stack exchange,提问作者tp__tp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:54:04