【问题标题】:How do I properly rename a .razor file in vs2019?如何在 vs2019 中正确重命名 .razor 文件?
【发布时间】:2020-01-18 05:27:05
【问题描述】:

在 vs2019 中,我将一个新的 razor 组件添加到一个工作正常且本质上是全新的 Blazor 应用程序项目中。我为新的 razor 组件重命名了文件,发现 index.razor 仍然引用 <oldComponentName/>,因此我将其更新为 <newComponentName/> 以匹配新文件名。

我看到了错误:Found markup element with unexpected name 'newComponentName'. If this is intended to be a component, add a @using directive for its namespace.

我构建、重建并搜索了文件名到组件名称的“映射”,这些组件名称已经过时或其他什么 - 不走运。我(有意)没有引入其他命名空间,因此@using 指导似乎不相关。

目前,我碰巧希望我的文件名和组件名保持一致。我在这里错过了什么?

【问题讨论】:

  • 一个组件的名称来自文件名,其命名空间来自它所在的文件夹。如果@usings 正常,你检查过你的 _imports.razor 文件吗?
  • @HenkHolterman 谢谢。我确实检查了 _imports.razor 中的@usings,它们看起来不错。
  • 我遇到了同样的问题。一切都正确命名,VS只想使用它的缓存数据(或其他东西)。重新启动 VS 并清理 bin/obj 目录对我有用。

标签: visual-studio-2019 blazor


【解决方案1】:

我不得不重新启动我的 Visual Studio。不需要额外的修复。问题似乎是一些缓存数据。

【讨论】:

  • 遗憾的是,这可能是大多数人的答案
  • 我也有同样的经历。在 Blazor WASM 项目中重命名了 razor 文件及其相关的部分代码隐藏文件。文件后面的代码没有注册文件名,在VS 2019重启之前
【解决方案2】:

清单:

  1. 您的组件名称应以大写字母开头,如 Counter 而不是 counter。

  2. 不带扩展名的文件名就是你的组件名

因此,如果你将文件名命名为 Counter.razor,那么你的组件名称就是 Counter

应该这样使用:<Counter />

您收到的错误也可能归因于未能导入组件所在的命名空间(如果您已在添加到应用程序的新文件夹中定义它)。

【讨论】:

  • 谢谢。这很有帮助,因为它让我有信心再试一次。虽然您的第 1 项和第 2 项检查正常,但我仍然遇到同样的错误。我重建并持续存在。给VS2019思考了一会儿,错误消失了。耐心可能是这里真正的关键。
  • 是的,我很清楚 VS2019 的这个问题,正如你所说“耐心可能是这里真正的关键”
  • 在我的情况下,我需要关闭并重新打开 VS,问题就消失了。
  • 做了这些事情,但错误仍然存​​在,不得不重新启动VS。
【解决方案3】:

这个问题依然存在!

我还收到建议使用@using 指令的消息。我还尝试关闭解决方案,执行清理、构建和重建无济于事。 然而,重新启动对我不起作用,实际上退出并重新进入 VS 后,两个组件都没有被识别。

我决定使用原始组件名称从 Add 模板中添加一个新组件,并复制重命名文件的内容,此时 IntelliSense 决定识别这两个版本,然后事情按预期运行。

【讨论】:

    【解决方案4】:

    重新启动 VS 经常有效。如果没有,我发现打开组件并重新保存(可能进行表面编辑)可以解决

    【讨论】:

      猜你喜欢
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2019-08-31
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多