gpt4 book ai didi

visual-studio-2019 - Blazor 应用程序中的结构以及为什么我不能拥有一个?

转载 作者:行者123 更新时间:2023-12-03 08:33:53 25 4
gpt4 key购买 nike

因此,我使用 dotnet new blazorserver 创建了一个沼泽标准 Blazor 服务器应用程序。在VS中打开解决方案并运行它。

很好。

如果我添加一个新文件夹,例如 Components并在该文件夹中添加一个新的 Razor 组件 - Component1.razor - 然后在我的index.razor页面我添加了一个 using 语句来指向我的 Components文件夹和标记以包含组件本身并运行应用程序,索引页显示,但没有我的组件的迹象。进一步查看渲染的 HTML 的源代码,我看到一个空元素 <component1></component1>

如果我将新组件移至 Pages文件夹并重新运行应用程序,组件正确呈现。

如果我在Pages下创建一个子文件夹并将我的组件移到那里并重新运行应用程序,该组件无法渲染。

我做错了什么吗?我是不是期待太多了? 应该我能够拥有一个结构,这意味着我不必将每个组件都放在一个文件夹中吗?

最佳答案

我认为您忽略了_Imports.razor的要点。您可以将页面放置在 @page "" 属性可以找到的任何位置。如果您希望组件可用,请通过 _Imports.razor 引用其文件夹,或使用 @namespace 属性/指令覆盖其文件夹中的命名空间到另一个正在导入的文件中。这里没有什么特别的事情发生。该模板为“共享”文件夹添加了一条 using 语句。这就是根文件夹中的 App.razor 可以访问它们的原因。

示例_Imports.razor(来自名称/默认命名空间为PolymorphicApi的项目)

...
@using PolymorphicApi
@using PolymorphicApi.Shared

如果您不想使用_Imports.razor,您可能不想让所有组件可用。您可以在组件中使用@namespace。这与覆盖 .cs 文件中的默认命名空间相同。

示例:

@namespace PolymorphicApi

使用此语句的组件可以位于任何子文件夹中,并且在根命名空间已导入时可用。

作为旁注:_Imports.razor 可以被视为一大块 razor 语句,它将导入到该文件夹​​下的所有 razor 组件中。您不必仅将它用于命名空间。例如,您可以使用 @inject 语句。我这样做是为了默认在每个组件中进行本地化。

关于visual-studio-2019 - Blazor 应用程序中的结构以及为什么我不能拥有一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64443319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com