สิ่งนี้ช่วยให้เราสามารถจัดการ พื้นที่ในการจัดวาง group code ได้เป็นสัดส่วน ส่วนตัวของแต่ละส่วน ได้มากขึ้น ละสามารถใช้ MVC ร่วมกันได้เหมือนเดิม ทำให้ทำงานง่ายขึ้น
- ใน Solution Explorer คลิกขวาที่ project node > add > New Folder สร้างโฟลเดอร์ Areas ขี้นมา
- ไปที่โฟลเดอร์ Areas คลิกขวา สร้างโฟลเดอร์ใหม่ เช่น API ขี้นมา
- ไปที่ Program.cs ค้นหาใกล้ ๆ กับ
app.MapControllerRoute( name: "API", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
- เพิ่ม route
app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
แต่ละ area จะทำแบบนี้เพียงครั้งเดียว จากนั้นจะใช้ area API ในการแยกโค้ทใหม่ได้โดย ตัวอย่าง
- ใน Solution Explorer คลิกขวาที่ Areas > API ที่สร้างไว้
- คลิกขวา add > Controller…
- ที่หน้าต่าง Add New Scaffolded Item เลือกแบบที่ต้องการ เช่น Installed > Common > API > MVC > Controller > MVC Controller With Views, using Entity Framework > Add
- ที่หน้าต่าว Add MVC Controller With Views, using Entity Framework
- Model class เลือก model ที่ต้องการ เช่น line_logins ( Pitt.Models )
- DbContext class เช่น DSNDevDBContext ( Pitt.Models )
- Views เลือก options ตามที่ต้องการ
- Controller name เช่น line_loginsController
- คลิก Add
- ทดสอบโดยลองเรียก URLจะเห็นว่าหน้าทั้ง 2 หน้าต่างกันในส่วนหัวและท้ายแต่ก็ดึงข้อมูลมาจากที่ เดียวกัน
อ่านเพิ่มเติม
About the author