Dot-Net-Core

如何使用頁面和共享文件夾中的子文件夾

  • September 21, 2021

我有一個 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.razorEmployeeList.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 頁面,但我會記住這一點,以防事情停止正確編譯。

引用自:https://stackoverflow.com/questions/57112091