[C#][.Net] 關於 ASP.net 取得 POST 資料,動態增加 POST 值

2023-06-26

今天來寫一個很基本的東西,其實應該很多人都會了

只是最近要處理一些動態資料,所以測試一下關於 .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 的接口,剛好有朋友問,就順手測試一下




當麻許的碎念筆記 2014 | Donma Hsu Design.