如何使用頁面和共享文件夾中的子文件夾
我有一個 Blazor 伺服器端應用程序。它具有開箱即用的 Pages 和 Shared 文件夾。由於我在這些文件夾中有很多組件,因此我想將這些組件分佈到多個子文件夾中以獲得更清晰的結構。但如果我這樣做,則找不到組件並且不會顯示在 GUI 中。我錯過了什麼?我是否必須在某處註冊到新子文件夾的路線?
您可以擁有任何您想要的文件夾結構。但是您需要
_Imports.razor使用新的命名空間來更新您的。例如,如果你有一個結構
MyProject/Components/Forms/MyInput.razor您將需要以下內容
_Imports.razor:@using MyProject.Components.Forms;另一種選擇是使用完全限定的命名空間來引用組件:
<MyProject.Components.Forms.MyInput/>
我正在為我的程式碼使用部分類,而不是在剃須刀頁面中嵌入程式碼,所以我對上面 Chris 的建議有點困惑,並且在將部分類中的覆蓋移動到新的子目錄後,我的部分類中的覆蓋不斷出現編譯錯誤.
這是我如何讓它工作的:
我有一個名為 EmployeeList.razor 的頁面和一個名為EmployeeList.razor.cs**的部分類,它們位於 Pages 文件夾中名為 Web.Client 的項目中。這意味著以下內容:
- EmployeeList.razor頁面的命名空間預設為 Web.Client.Pages
- 我的部分類使用相同的命名空間
如果我將EmployeeList.razor和EmployeeList.razor.cs文件移動到名為 EmployeePages 的 Pages下的子文件夾中, EmployeeList.razor頁面現在將具有 Web.Client.Pages.EmployeePages 的新命名空間。這意味著我還需要更改我的部分類的命名空間以匹配,否則它將無法覆蓋方法。
我遇到的唯一其他問題是沒有註意我使用的文件夾名稱。我最初使用了一個名為 Employee 的子文件夾(如在 Pages\Employee\EmployeeList.razor 中),這為 Web.Client.Pages.Employee 的 razor 頁面創建了一個命名空間,我開始遇到一個 Employee.cs 類的問題。在我的部分類中使用,因為它認為我正在嘗試使用命名空間而不是類名。由於頁面的路徑是由 razor 頁面上的@Page 指令決定的,因此文件夾名稱實際上只決定了 razor 頁面的命名空間,所以我將子文件夾名稱更改為 EmployeePages。
我沒有發現我需要用新的命名空間更新 _Imports.razor 頁面,但我會記住這一點,以防事情停止正確編譯。