[C#] ASP.NET Core 6.0 - 一些基本概念使用 BindProperty , HtmlHelper , 不透過 AJAX 純用 POST 做雙連動下拉選單

2023-02-01

今天寫一個對很多人來說是很基礎的東西,不過因為之前我是從 ASP.NET Webform 寫的比較熟

中間的  ASP.NET MVC 時代,我比較沒有去觸碰 ,之前有測試過一些東西,但是因為很多原因所以還是主要不會去用此開發

現在到了 ASP.NET 6  的時代,有些基本功可能跟當初的 Webform 不太一樣今天筆記一下

也怕自己忘記



1. 可以使用 Microsoft.AspNetCore.Html 中的 IHtmlHelper ,可以讓前端 HTML Code 更加的程式化


轉換到前端後


2.善用   [BindProperty] ,這可以有效的讓你保留前端使用者所選取的狀態,當 Post 回 Server 時候你可以保留取得前端的值

在 PageModel 中只要宣告


這在 cshtml 中就可以


這樣就可以做出一個綁定資料的下拉選單,當然 Friends 的部分你可以改成資料庫吐出的資料

3.這篇的主角,製作雙層可連動的選單 ,當然我知道現在的人都會用 ajax 解決,我也不例外,不過因為是練手所以我就是模擬

以前 Webform 的 POSTBACK  的作法來做到連動的下拉選單

這邊就不多說提供程式碼,其實很簡單一看就懂我要幹嘛,這邊有一個小技巧,因為我還是得透過一點點 javascript 讓 第一個下拉選單

onchange 時候,轉換 form 的 action 這樣才能觸發 OnPostSelCity


HtmlTagsTest.cshtml:


HtmlTagsTest.cshtml.cs:


Result:


reference:

https://learn.microsoft.com/zh-tw/aspnet/core/mvc/models/model-binding?view=aspnetcore-6.0

https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.rendering.ihtmlhelper?view=aspnetcore-6.0


當麻許的超技八 2014 | Donma Hsu Design.