在上回 [Day10] C# MVC 檢視元件View Compoment使用- C#&AspNetCore ,我們介紹了View Component的做法,算是把整個MVC的View摸透了。
而這回則是要探討如何在這些頁面間傳遞參數。
Model Binder
主要會透過Model Binder來完成傳遞,Model Binder主要是用於將HTTP request資料對應到controller/Action去。
參數可能是string、integer、class、list、array…等
而為什麼能接到呢?就是前面的這些設定
Startup.cs
1 | app.UseEndpoints(endpoints => |
常見的傳遞參數方法
- 從網址傳遞
例:https://localhost:44378/Home?id=1
1 | public IActionResult Index(int id) |
後面帶參數即可,以此是id,有多少個帶多少個。
- 從form post請求
View頁面:
1 | <form asp-action="Create"> |
Controller頁面:
1 | [HttpPost] |
基本上就是有特別多資料或固定規格會使用Model去接,不然可以參考以下補充資料。
補充
通常上面的就足夠來撰寫網頁了,但偶而還是會需要取得請求的特定資料
這時還有以下方法可以用:
Header、Request、Query、Form、Route、FormBody
總結
雖然有時會因為避免用戶改資料,把參數傳遞在session storage就是了。
但缺點是他是前台Javascript,要在前台追參數。
最後,當專案大起來時勢必要注意參數的管理,不然A到B頁可能會有各種傳法,在追參數、修改上就會花比較多時間。
預計下回會稍微探討權限部分。