ฉันใช้_viewstart.cshtmlเพื่อกำหนดมีดโกนรูปแบบเดียวกันให้กับมุมมองของฉันโดยอัตโนมัติ
เป็นไฟล์แบบง่าย ๆ ที่อยู่ในรูทของโฟลเดอร์ Views ของฉันที่มีลักษณะดังนี้:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
นี่คือ DRY มากกว่าการเพิ่มคำสั่ง @Layout ในทุก ๆ มุมมอง
อย่างไรก็ตามสิ่งนี้ทำให้เกิดปัญหาสำหรับมุมมองบางส่วนของ Razor เนื่องจากพวกเขาเรียกใช้เนื้อหาของ _viewstart.cshtml ดังนั้นจึงกำหนดรูปแบบตัวเองอย่างไม่ถูกต้องซึ่งทำให้พวกเขาเอ่อไม่ใช่บางส่วนอีกต่อไป
นี่คือโครงการสมมุติซึ่งแสดงไฟล์ _viewstart.cshtml, ไฟล์ _layout.shtml ที่ใช้ร่วมกันและมุมมองบางส่วน ("AnonBar.cshtml")
ปัจจุบันวิธีที่ฉันได้รับรอบนี้คือการเพิ่มบรรทัดต่อไปนี้ในทุกมุมมองบางส่วน:
@{
Layout = "";
}
ดูเหมือนว่าวิธีการที่ผิดในการแสดงว่ามุมมองเป็นส่วนหนึ่งในมีดโกน (โปรดทราบว่าไม่เหมือนกับเอ็นจิ้นดูเว็บฟอร์มส่วนขยายไฟล์จะเหมือนกันสำหรับบางส่วนของมุมมอง)
ตัวเลือกอื่น ๆ ที่ฉันพิจารณา แต่นั่นแย่กว่า:
- วางมุมมองบางส่วนทั้งหมดลงในโฟลเดอร์ทั่วไปเพื่อให้พวกเขาสามารถแบ่งปัน _viewstart.cshtml ทั่วไป สิ่งนี้จะทำให้การประชุมของมุมมองอยู่ในโฟลเดอร์เดียวกับตัวควบคุม
- ไม่ได้ใช้มุมมองบางส่วน
นี่เป็นบางสิ่งที่ยังคงถูกถ่ายทอดออกมาโดยทีมงานของ Razor View Engine หรือฉันขาดแนวคิดพื้นฐานหรือไม่?