Stu*_*ing 2 blazor visual-studio-2019 blazor-server-side
因此,我使用dotnet new blazorserver. 在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
Run Code Online (Sandbox Code Playgroud)
如果您不想使用_Imports.razor,您可能不想让所有组件可用。您可以@namespace在组件中使用。这与覆盖文件中的默认命名空间相同.cs。
例子 :
@namespace PolymorphicApi
Run Code Online (Sandbox Code Playgroud)
使用此语句的组件可以位于任何子文件夹中,并且在根命名空间已导入时可用。
附带说明:_Imports.razor可以将其视为一大块 razor 语句,它将导入到该文件夹下的所有 razor 组件中。您不必仅将它用于命名空间。例如,您可以使用 @inject 语句。我这样做是为了默认在每个组件中进行本地化。
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |