c# - 无法使用Razor 页面上的标签助手?
问题描述
我正在使用 DotNetCore 3.1 和 Razor Pages。
我想使用我在Index.Razor
页面上创建的 Razor 组件,但让它使用“静态”渲染模式。
根据文档:
要从页面或视图呈现组件,请使用 Component Tag Helper:
<component type="typeof(Counter)" render-mode="ServerPrerendered" param-IncrementAmount="10" />
正如您在下面看到的,我可以使用它的名称作为标签 ( ) 来呈现我的组件(名为 Lister <Lister></Lister>
)。但是,我无法使用<component />
标签助手来呈现它。
如果我运行该页面,它既不会将语法突出显示为可识别的标签助手,也不会实际呈现它。
当我运行页面时,它不显示组件,而是显示为
<component type="typeof(Lister)" render-mode="Static"></component>
在页面源中。
在另一个项目中,我能够在 MVC 视图 ( .cshtml
) 文件中呈现相同的组件(使用相同的语法)。
编辑:
好的,所以我认为我错过/搞砸的是我的Index.razor
文件不是 Razor 页面,而是一个可路由的 Razor 组件。
我错误地将 Blazor 项目作为 Razor Pages 项目。
Razor 页面具有.cshtml
文件类型
Razor 组件具有.razor
文件类型(并且可能会混淆 @page 指令)
Razor 组件无权访问<component />
标签助手,必须通过以下方式使用其他 Razor 组件<theNameOfIt></theNameOfIt>
谢谢您的帮助!
解决方案
组件 Tag Helper 不是 Blazor 对象。Blazor 中不存在标签助手或 html 助手的概念。这是 Razor Pages 和 MVC 的领域。在 Blazor 中,我们有一个组件模型。
通常,您应该使用 _Host.cshtml 文件中的组件 Tag Helper 来呈现 Razor App 组件。
您不能在 Index.razor 组件中嵌入组件 Tag Helper。您不能在 Blazor 中使用组件标记帮助程序。_Host.cshtml 文件不是 Blazor。这是启动 Blazor 应用程序的 Razor Pages 文件...
推荐阅读
- google-apps-script - 我希望我的 Google Apps 脚本自定义菜单功能仅适用于特定工作表
- python - 获取卷积算法失败。这可能是因为cuDNN初始化失败。[{node conv2d_1/Conv2D}]
- sql - 了解子查询中 where 的使用
- python - 在 Python 中绘制聚类句子
- apache-spark - 从外部源创建 Spark RDD 或 Dataframe
- message - 使用 UIActivityViewController 通过消息应用分享 @[dataFileURL, @"text"] 时,文本不包括在内
- python - Python 二进制约束中的 Excel 求解器
- php - 使用 Google Drive API v3 和 php 通过 html 表单上传文件
- python - 如何使树视图和表单视图中的特定记录在odoo中不可编辑?
- javascript - 在 SetTimeout 中包装几个函数