2

阅读 ASP.Net Core 3.1 的最新文档,现在建议使用 Razor 组件而不是 View 组件。从 1,000 英尺看,这看起来是个好主意,因为现在有一个文件而不是“控制器”和默认的“视图”。更精确,更紧凑,我假设更有效。

让我感到惊讶的一大信息是 Razor 组件不支持标签助手(参考):

Razor 组件(.razor 文件)不支持标签助手。若要在 Blazor 中提供类似于 Tag Helper 的功能,请创建一个与 Tag Helper 具有相同功能的组件并改用该组件。

我是 .NET 世界中唯一一个认为这绝对不能接受的人吗?在视图组件中,标签助手是受支持的,并且是 .NET MVC 中最有用的部分。一个简单的例子是锚标签助手。在我看来,这是最有用的助手,因为它接受areacontrolleraction和一个动态参数列表,可以生成一个锚标记,而您不必担心找出路由。

足够令人发指,将其变成一个问题,现在如何在 Razor 组件中执行此操作?Microsoft 的标签助手文档中的示例是使用视图组件中的标签助手创建导航菜单的能力。现在,在视图组件页面上,建议使用 Razor 组件而不是视图组件(参考):

在考虑视图组件是否符合应用程序的规范时,请考虑改用 Razor 组件。Razor 组件还将标记与 C# 代码相结合,以生成可重用的 UI 单元。在提供客户端 UI 逻辑和组合时,Razor 组件旨在提高开发人员的工作效率。

因此,如果要使用 Razor 组件在 ASP.NET Core 3.1 (MVC) 中创建导航菜单,那么无需在 Startup 中记录每条路线的最简单方法是什么?

4

0 回答 0