2012-10-25 36 views
13

Tôi đang làm việc trên dự án ASP.NET MVC 3. Tôi muốn chia bộ điều khiển, mô hình và chế độ xem trong các thư mục con vì mục đích đơn giản. Tôi có thể làm điều đó với bộ điều khiển và các mô hình nhưng khi tôi tạo ra một khung nhìn nó tạo tự động vào thư mục gốc Views, Có cách nào để giải quyết vấn đề này không?Thêm chế độ xem trong các thư mục con trong ASP.NET MVC 3

ví dụ: Tôi có thể tạo

mô hình lớp như,

Models/Finance/Bank.cs 
Models/Finance/Finance.cs 
Models/Production/Production.cs 

điều khiển như,

Controllers/Finance/BankController/Create 
Controllers/Finance/BudgetController/Create 
Controllers/Production/ProcessController/Create 

nhưng nơi tôi đã cố gắng để tạo ra xem cho hành động trên, nó tạo ra vào,

Views/Bank/Create.aspx 
Views/Budget/Create.aspx 
Views/Process/Create.aspx 

Tôi muốn nó giống như,

Views/Finance/Bank/Create.aspx 
Views/Finance/Budget/Create.aspx 
Views/Prodution/Process/Create.aspx 

Có cách nào để tạo các chế độ xem trong cùng một thư mục con như đã tạo cho Bộ điều khiển và mô hình không? cảm ơn!

+0

Có gì đó không đúng ở đây. 'CustomerController' không cần hai thư mục. –

Trả lời

17

Mô hình và Bộ điều khiển được biên dịch các tệp nguồn. Chúng được biên dịch thành một DLL, và như vậy, chúng theo nghĩa đen có thể được đặt ở bất kỳ đâu trong dự án và nó sẽ không tạo ra sự khác biệt. Các lớp này không có khái niệm về vị trí của chúng trong hệ tập tin vì chúng không tồn tại trong hệ thống tập tin khi được biên dịch. Mặt khác,

Chế độ xem khác nhau. Chúng là các tệp văn bản được triển khai tới máy chủ và được tải và phân tích cú pháp tại thời gian chạy, do đó khung công tác phải biết nơi tìm chúng.

Công cụ sẽ luôn tạo các khung nhìn trong thư mục ~ \ Views \ Controller (hoặc thư mục ~ Areas \ AreaName \ Controller). Bạn có thể di chuyển chúng bất cứ nơi nào bạn muốn sau đó, nhưng bạn sẽ phải cung cấp cho toàn bộ đường dẫn thư mục đến phương thức View() (bao gồm .cshtml). Hoặc bạn sẽ phải triển khai ViewEngine tùy chỉnh để đặt đường dẫn tìm kiếm nơi bạn muốn.

0

Tên của chế độ xem là Theo tên của Bộ điều khiển, bạn nên tuân thủ quy tắc.
Nếu bạn muốn tạo Views/Admin/Create, thì CustomerController.cs của bạn phải được đặt tên là AdminController.cs.

+2

Làm thế nào để dịch sang các nhà điều hành phụ? Ví dụ. 'Views/Admin/Customers/Create' nơi tôi có một' AdminController' và một bộ điều khiển 'CustomersController'. – Dan

21

bước sau làm việc cho tôi,

  1. Tạo thư mục con như bạn muốn trong Views (thư mục gốc). trong trường hợp của tôi là Tài chính & Sản xuất.

  2. Chỉ cần kéo các thư mục được tạo tự động trong Views vào các thư mục con thích hợp.trong trường hợp của tôi Bank & Budget để FinanceProcess để Production

  3. Trong khi bạn quay trở lại một cái nhìn từ hành động điều khiển, cung cấp cho đường dẫn đầy đủ của quan điểm như,

    returnView("~/Views/Finance/Bank/Create.aspx")

    returnView("~/Views/Finance/Budget/Create.aspx")

    returnView("~/Views/Production/Process/Create.aspx")

+3

đó là những gì @Mystere Man đề xuất, không có lý do gì để viết một câu trả lời khác, chỉ đánh dấu câu trả lời của mình là được chấp nhận –

+1

Nó cũng hoạt động cho cshtml dao cạo. ví dụ: "return View (" ~/Views/SomeSubFolder/Login.cshtml "); – granadaCoder

Các vấn đề liên quan