昨天提到當 @ 後面接著 Razor 保留關鍵字時,它才會轉換成 Razor 特定的標記,而今天就要來介紹第一批的關鍵字,也就是 Razor 指示詞(Directives)。
雖然都沒有特別提到,但第二天會先建舞台的用意,就是有一個環境可以練習道具,可以試著修改裡面的檔案來看每一個道具效果。
@attribute
@attribute 指示詞針對頁面增加屬性。
1 | @attribute [Authorize] |
使該頁面增加 [Authorize] 屬性。
@code
@code 指示詞針對頁面增加成員(欄位、屬性和方法)。
1 | @code { |
使該頁面增加私有數字欄位currentCount,且初始值為0。
@function
@functions 指示詞針對頁面增加成員(欄位、屬性和方法)。
疑~怎麼重複了?因為 @code 和 @functions 真的是一樣的作用,為了使程式碼語意更清楚,官方建議加入欄位或屬性使用 @code,而加入方法則使用 @functions。
而昨天說的區域函式建議寫在 @function 裡。
1 | @functions{ |
使該頁面增加私有方法IncrementCount,並與剛剛增加的currentCount欄位互動。
@implements
@implements 指示詞針對頁面加入需實作的介面。
1 | @implements IDisposable |
使該頁面必須實作IDisposable介面的方法。
@inherits
@inherits 指示詞針對頁面加入繼承的父類。
先新增 CustomRazorPage.razor 檔案,並加入內容。
1 | @* CustomRazorPage.razor *@ |
就可以使用:
1 | @inherits CustomRazorPage |
使該頁面能夠使用父類CustomRazorPage內所能存取的成員。
@inject
@inject 指示詞針對頁面注入對應服務。
1 | @inject HttpClient httpClient |
使該頁面能夠從 DI 容器中取得HttpClient實體。
後續文章將針對相依性注入詳細介紹。
@layout
@layout 指示詞針對頁面加入版面配置元件。
1 | @layout MainLayout |
使該頁面增加MainLayout版面配置。
後續文章將針對版面配置詳細介紹。
@page
@page 指示詞設定頁面路由。
1 | @page "/counter" |
使該頁面的進入點為/counter。
後續文章將針對路由詳細介紹。
@using
@using 指示詞針對頁面加入其他命名空間的別名。
1 | @using System; |
使該頁面能夠直接瀏覽System命名空間。
以上就是第一批魔術道具 Razor 指示詞的所有介紹與用途啦。
感謝大家的閱讀,我們明天見。
參考資料
Razor 語法 - 指示詞