ตัวควบคุมเว็บ API สามารถสร้างและโฮสต์ในแอปพลิเคชัน ASP.NET ใด ๆ ไม่ได้เป็นเพียงแอปพลิเคชัน MVC ดังนั้นเหตุผลที่ชัดเจนในการสร้าง Web API คือหากคุณไม่มีส่วนหน้าของ MVC (เช่นบริการเว็บแบบดั้งเดิมที่สงบเงียบซึ่งโฮสต์โดย บริษัท / องค์กรของคุณ)
โดยทั่วไปแล้วตัวควบคุม MVC จะใช้ MVC Framework หากคุณดูเทมเพลตเริ่มต้นและงานส่วนใหญ่ที่ทำโดยชุมชนและเพื่อนของคุณคุณจะสังเกตเห็นว่าตัวควบคุม MVC เกือบทั้งหมดจะถูกนำไปใช้กับมุมมอง
โดยส่วนตัวแล้วฉันใช้ MVC Controllers เมื่อฉันต้องการตอบโต้ด้วย View () และฉันจะใช้ Web API สำหรับสิ่งที่ไม่ได้ขึ้นอยู่กับมุมมองที่เฉพาะเจาะจง
แน่นอนว่ามีข้อแม้ แต่โดยทั่วไปแล้วหากคุณไม่ต้องการใช้ Model Binding พฤติกรรมของ MVC บริการของคุณคือ data-centric และการดำเนินการคือ data-centric (เช่นการทำงาน CRUD) คุณอาจต้องการ 'Web API Controller 'แทนที่จะเป็น' Model-View Controller ' ในทางกลับกันหากการดำเนินการของคุณเป็นแบบ View-Centric (เช่นการส่งหน้าผู้ดูแลระบบของผู้ใช้ไปยังผู้ใช้) หรือคุณต้องการ Model Binding ของ MVC เพื่อสร้าง 'ajax partials' (ไม่น่าเป็นไปได้มาก) คุณจะต้องการ MVC Controller แทน
โดยส่วนตัวแล้วฉันใช้ตัวควบคุม Web API สำหรับการขับลูกค้า RESTful ที่ใช้ JSON ฉันใช้ตัวควบคุม MVC เพื่อจัดการเส้นทางเบราว์เซอร์พื้นฐานและส่งมอบสปา