今天來寫一個很基本的東西,其實應該很多人都會了
只是最近要處理一些動態資料,所以測試一下關於 .Net Core Post 資料的問題

頁面上有一個表單,要如何取得表單的資料,這裡面我用的是 .Net 6 的 PageModel,其實方法也很簡單
.cshtml 的部分
<form method="post" id="form1">
<label>帳號</label>
<input name="account1" />
<label>密碼</label>
<input name="pass1" />
<button id="btnLogin1" asp-page-handler="Logon1">Sing On</button>
</form>
.cs 的部分
public ActionResult OnPostLogon1(string account1,string pass1)
{
Result = account1 + "," + pass1;
return Page();
}
但是因為,很多時候我們會在前端動態生成一些 input 之後再往後端去 post 這時候在 C# 端就無法先知道名稱後進行編輯
這時候要用 Request.Form["KEY"] 來做到
.cshtml 的部分
<form method="post" id="form2">
<label>帳號</label>
<input name="account2" />
<label>密碼</label>
<input name="pass2" />
<label>Gender:</label>
<select name="gender2">
<option value="男">男</option>
<option value="女">女</option>
</select>
<button id="btnLogin2" asp-page-handler="Logon2">Sing On</button>
</form>
<script>
$('select[name="gender2"]').after("<lable>備註</label><input name='memo2'/>");
</script>
.cs 的部分
public ActionResult OnPostLogon2()
{
Result = this.Request.Form["account2"] + "," + Request.Form["pass2"] + "," + Request.Form["gender2"] + "," + Request.Form["memo2"];
return Page();
}
這裡面 name=memo2 的欄位,我是用前端 javascript 加入的,然後 POST到後端後,使用 Request.Form["memo2"] 抓到這值
這樣就可以做到,動態的去抓取,並非在編譯期就要決定該 metho parameter 的接口,剛好有朋友問,就順手測試一下