了解標籤協助程式和頁面處理常式

已完成

在上一個單元中,您已建立 Razor 頁面,其中會顯示披薩的清單。 您使用 @ 符號在 HTML 和 C# 之間切換內容。 在本單元中,您將會了解標籤協助程式的相關資訊。 標籤協助程式是一種特殊的 HTML 元素,可包含 C# 程式碼。 您也將了解頁面處理常式的相關資訊。 頁面處理常式是處理瀏覽器要求的方法。 您將在下一個單元中使用頁面處理常式,來新增和刪除披薩。

標籤協助程式

標籤協助程式可用來解決 HTML 與 C# 之間內容切換效率不佳的情況。 大部分 ASP.NET Core 的內建標籤協助程式都會擴充標準 HTML 元素。 標籤協助程式可為 HTML 元素提供額外伺服器端屬性,讓元素更加強固。

您應該知道此專案的四個標籤協助程式:部分標籤輸入驗證摘要訊息

部分標籤協助程式

<partial name="_ValidationScriptsPartial" />

這會將 _ValidationScriptsPartial.cshtml 檔案的內容插入頁面。 _ValidationScriptsPartial.cshtml 檔案包含用來驗證表單輸入的 JavaScript,因此必須在內含表單的每個頁面上都需要包含此檔案。

標籤標記協助程式

<label asp-for="Foo.Id" class="control-label"></label>

其會擴充標準 HTML <label> 元素。 如同許多標籤協助程式,其會使用 asp-for 屬性。 屬性接受來自 PageModel 的屬性。 在此情況下,PageModelFoo.Id 屬性 (特別是字串 "Id") 的名稱將會轉譯為 HTML <label> 元素的內容。

輸入標籤協助程式

<input asp-for="Foo.Id" class="form-control" />

與上一個範例類似,這會擴充標準 HTML <input> 元素。 其也會使用 asp-for 屬性 (Attribute) 來指定 PageModel 屬性 (Property)。 在此情況下,Foo.Id 屬性的值將會轉譯為 HTML <input> 元素的 value 屬性。

驗證摘要標籤協助程式

<div asp-validation-summary="All"></div>

驗證摘要標籤協助程式會顯示模型上單一屬性的驗證訊息。

注意

會在 PageModel 類別中定義驗證規則和屬性顯示名稱等資訊。 我們將在下一個單元的程式碼中指出要在哪裡找到這些資訊。

頁面處理常式

針對 HTTP 要求及用來轉譯網頁的資料,PageModel 類別會定義網頁處理常式。 在上一個練習中,PizzaListModel 類別藉由將 PizzaList 屬性的值設定為 _service.GetPizzas() 的值來處理 HTTP GET 要求。

常見的處理常式包括頁面初始化的 OnGet 和表單提交的 OnPost。 若要處理 HTTP POST,頁面處理常式可能會驗證使用者提交的資料、如果無效,則會再次顯示輸入表單頁面,或將有效的資料傳送至服務或資料庫以保存。

在下一個單元中,您將新增表單,以使用數個標籤協助程式建立新的披薩。 您也會新增頁面處理常式,來處理表單提交和刪除披薩。