รายละเอียดของการตอบ ::
ผมใช้ผสมเลย เพราะมันง่ายประการหนึ่ง และทำให้รองรับการโหลดแบบธรรมดาและแบบ ajax ได้อีกประการหนึ่ง
ตัวอย่างทำหน้าลิ้งค์ไป /contact ถ้าคลิกแบบไม่มี javascript ก็เปิดหน้า /contact สบายๆไปเลยเหมือนเปิด url บนเบราเซอร์ธรรมดา
แต่ถ้าคลิกแบบมี javascript มันจะทำการเปิดแบบ ajax แล้ว controller ของหน้า contact ก็ตรวจว่าเปิดธรรมดาหรือ ajax (xhr) ถ้า ajax ก็เอาเฉพาะฟอร์มส่งไป ถ้าแบบธรรมดาก็เอาฟอร์มมาใส่ main layout
แล้วการ submit form ก็ใช้ route เบี่ยง controller เอา ว่าถ้า method POST url /contact ก็ให้ไป ContactController method submit อะไรแบบนี้ครับ.
คือทำเสร็จรองรับได้หมดเลยรวบยอด สะดวกดีครับผม