อนุสัญญา RESTful ระบุการใช้คำนามพหูพจน์กับวัตถุเอกพจน์
หลักการพหูพจน์สำหรับการตั้งชื่อคอนโทรลเลอร์ ASP.NET MVC คืออะไร
ProductController
หรือProductsController
?
อนุสัญญา RESTful ระบุการใช้คำนามพหูพจน์กับวัตถุเอกพจน์
หลักการพหูพจน์สำหรับการตั้งชื่อคอนโทรลเลอร์ ASP.NET MVC คืออะไร
ProductController
หรือProductsController
?
คำตอบ:
MVC Framework บางตัวใช้พหูพจน์อย่างไรก็ตามเทมเพลตโครงการ MVC มีคอนโทรลเลอร์ที่เรียกว่า AccountController ดังนั้นจึงแนะนำการตั้งชื่อแบบเอกพจน์
มันไม่สำคัญหรอก เช่นเดียวกับสิ่งต่างๆส่วนใหญ่ในเฟรมเวิร์ก Asp.net MVC ทางเลือกก็เป็นของคุณ ไม่มีแบบแผนจริงๆ
เป็นความคิดเห็นส่วนตัวของฉัน แต่สิ่งที่สำคัญคือคุณเลือกโครงการและสอดคล้องกัน!
ฉันจะต้องไม่เห็นด้วยกับคำตอบก่อนหน้าของการใช้พหูพจน์หรือเอกพจน์และสอดคล้องกัน ตัวควบคุมแต่ละตัวควรใช้รูปแบบที่แตกต่างกันขึ้นอยู่กับว่าพวกเขาโต้ตอบกับเอนทิตีเดียวหรือหลาย โดยเฉพาะอย่างยิ่งเนื่องจากมีการใช้ชื่อคอนโทรลเลอร์โดยค่าเริ่มต้นใน URL
แม้ว่าเทมเพลตโครงการจะใช้เอกพจน์ (HomeController, AccountController) แต่จะมีเพียงหน้าแรกเดียวและการดำเนินการบัญชีจะดำเนินการในบัญชีเดียวสำหรับเซสชันเท่านั้น ฉันไม่คาดหวังว่า URL ของ / บ้านจะเข้าถึงหน้าแรกและฉันไม่คาดหวังว่าจะไปที่ / บัญชีเพื่อจัดการการตั้งค่าบัญชีของฉัน
HomesController ที่เป็นพหูพจน์จะใช้กับเว็บไซต์อสังหาริมทรัพย์ที่มีวิธีการที่เกี่ยวข้องกับการลงรายการและค้นหาบ้านหลายหลัง: / homes / new-listings
UsersController
ถ้าคุณออกแบบเส้นทางของคุณเช่น/api/users
(ผู้ใช้ทั้งหมด) และ/api/users/{userId}
(ผู้ใช้รายเดียว)
/api/user/{userId}
ให้เช่นเดียวกับความรู้สึกมาก แต่คุณสามารถยืนยันว่าแม้ในกรณีของการจัดการกับผู้ใช้หลายคนที่สะท้อนให้เห็นถึงการควบคุมของคุณชนิดเอนทิตีจึงHomeController
จะจัดการกับหน่วยงานประเภทHome
เพราะฉะนั้น/Home/{homeId}
และ/Home/All-Homes/
เมื่อคุณเพิ่มตัวควบคุมโดยใช้นั่งร้าน MVC สำหรับเอนทิตี Entity Framework VS2013 จะสร้างชื่อคอนโทรลเลอร์เป็นพหูพจน์ดังนั้นฉันขอแนะนำให้ใช้ค่าเริ่มต้นนั้นซึ่งทำให้ตัวควบคุมสำหรับเอนทิตีพหูพจน์
UPDATE: ฉันเปลี่ยนใจ LouD ถูกต้อง ขึ้นอยู่กับบริบทของคอนโทรลเลอร์