在Blazor中,如何在Pages目录中检索所有可路由的Razor组件名称?

钱让你自由

我想通过迭代如下可路由的Razor组件名称来以编程方式生成菜单列表。GetAllRoutableRazorComponentNames()下面如何实现可能吗?

@foreach (var filename in GetAllRoutableRazorComponentNames())
{
    <li class="nav-item px-3">
        <NavLink class="nav-link" href="@filename">
            <span class="oi oi-list-rich" aria-hidden="true">@filename</span>
        </NavLink>
    </li>
}
互联网

好的,这仅返回可路由的组件。有时间的话,我也会改善它。但这确实满足您的要求:

    @using System.Linq;
@using System.Reflection;


<button type="button" @onclick="GetRoutables">
    Get Route
    Url With Authorize Attribute
</button>

@code{

  public void GetRoutables()
  {
     // Get all the components whose base class is ComponentBase
    var components = Assembly.GetExecutingAssembly()
       .ExportedTypes
     .Where(t => t.IsSubclassOf(typeof(ComponentBase))).ToList();
    
    var routables = components.Where(c => 
        c.GetCustomAttributes(inherit: true).OfType<RouteAttribute> 
        ().ToArray().Count() > 0);
                   

     foreach (var routable in routables)
     {
        Console.WriteLine(routable.ToString());

     }     

    }

}

希望这可以帮助...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获得资产目录组中的所有图像名称?

如何在所有组件中重用公共变量名称和函数

如何使此var在Razor Pages中可访问

如何从python3中的json文件中检索所有“名称”和“ id”

如何在组件方法中具有可访问的变量

如何在Github Pages中具有目录链接?

如何在Firebase中检索数据的名称

如何从句柄中检索组件名称?

在双屏VS中开发Blazor Razor组件

如何在React中创建可重用的目录组件

如何在Angular中具有其自己的路由的父组件中显示特定的子组件?

如何在终端上将所有目录中的文件重命名为相同的名称

URL中页面名称后所有路径的ASP.NET Core Razor页面端点路由

如何删除所有子目录中具有给定名称的所有文件?

如何在每个列表的目录中检索目录中所有文件的内容?

如何在工作目录中检索所有文件的列表

如何在Java中检索lexeme的所有变体?

如何在不使用find的情况下在当前目录的直接子目录中获取名称中包含某些模式的所有文件?

如何在python中打开目录中的所有文件?

如何在Firebase中插入所有类别的名称?

如何在目录中搜索所有以“ ABC”开头的文件?

如何在Powershell中列出目录中的所有项目

如何在目录中添加所有.pri文件

如何在目录内的所有目录中运行循环

如何检索javascript文件中的所有函数名称

如何在 Gstreamer 中检索属性名称

如何在反应中的所有组件之间共享价值

如何在 Azure 云存储中使用 python 遍历子目录中的所有 blob 名称?

如何根据每个组件的名称在列表的所有组件中创建一个新列?