了解標籤協助程式和頁面處理常式
在上一個單元中,您已建立 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
的屬性。 在此情況下,PageModel
Foo.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,頁面處理常式可能會驗證使用者提交的資料、如果無效,則會再次顯示輸入表單頁面,或將有效的資料傳送至服務或資料庫以保存。
在下一個單元中,您將新增表單,以使用數個標籤協助程式建立新的披薩。 您也會新增頁面處理常式,來處理表單提交和刪除披薩。