昨天提到當 @
後面接著 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 語法 - 指示詞