Mã nguồn là nơi tốt hơn để tìm kiếm tài liệu này nhiều hơn tài liệu.
Tham chiếu MVC 6 code từ Github, chúng tôi có một vài tác phẩm quan tâm
---- cập nhật ----
Do những thay đổi cơ cấu nguồn, thông tin này có thể được tìm thấy trong RazorViewEngine.cs nhìn cho "GetViewStartPages" chức năng.
----/cập nhật ----
ViewStartProvider, đó là trách nhiệm tập hợp một danh sách các file _ViewStart, có chức năng GetViewStartPages. Chức năng này phụ thuộc vào ViewStartHierarchyUtility để thực hiện công việc nhận danh sách tệp khởi tạo. Điều này trả lời cách các tập tin viewstart được thu thập.
Để trả lời cách chúng phát huy, hãy xem RazorView, Tôi tin (vì IView) được gắn với đường ống MVC. Tệp này có phương thức RenderAsync được gọi từ đường dẫn MVC để hiển thị chế độ xem được yêu cầu.
RenderAsync thực hiện cuộc gọi tới RenderPage VÀ THEN RenderLayout (LƯU Ý ĐƠN HÀNG). RenderPage trước tiên thực hiện các cuộc gọi để xử lý các tệp xem trước (lưu ý số nhiều, có thể có nhiều hơn một tệp _viewstart).
Vì vậy, thông tin bạn tìm kiếm có thể được lấy từ hàm RenderViewStartAsync trong RazorView.cs tệp dưới không gian tên Microsoft.AspNet.Mvc.Razor.
Nguồn
2015-04-14 12:53:32
Vì vậy, nó ít nhiều là một tính năng "hardcoded" của MVC3? Tôi không cần phải thay đổi nó sang trang "mặc định" khác, chỉ tò mò về cách nó được thiết lập. Cảm ơn bạn đã sắp xếp tất cả ra :) – Kman
Kman- Hardcoded, theo quy ước (chọn một 'xử lý' ở đây :)) - vì vậy có, chính xác. vui mừng nó xóa sương mù –
Nó không chỉ trong thư mục "Views" của bạn mà bạn có thể cần nó. Nếu bạn thêm một RazorViewEngine tùy chỉnh để tổ chức các khung nhìn vào các thư mục khác, bạn phải đưa tệp vào thư mục gốc của các thư mục xem thay thế đó. Ví dụ, tôi đã di chuyển tất cả các khung nhìn mẫu Inspinia vào một thư mục và chạy nó trong công cụ xem 'ViewLocationFormats = ViewLocationFormats.Union (chuỗi mới [] {" ~/Inspinia/ExampleViews/{1}/{0} .cshtml "}) .ToArray(); '. Kết quả là, tôi phải thêm một bản sao của tệp _ViewStart.cshtml vào "~/Inspinia/ExampleViews", nếu không nó không được chọn và không có bố cục nào được đặt. – Triynko