2013-04-16 25 views
6

Tôi sẽ có khả năng có nhiều Chế độ xem một phần cho ứng dụng của mình có thể được nhóm trong cấu trúc thư mục. Có vẻ như tôi nên làm điều này nếu không tôi sẽ có một thư mục View với vô số các tập tin. Vì vậy, tôi cho rằng tôi nên có một cái gì đó như:Cách tốt nhất để tổ chức Chế độ xem một phần trong cấu trúc tệp là gì?

Views -> 
    Group1 -> 
    PartialView1 
    PartialView2 

Cuộc gọi HTML.Partial sẽ như thế nào?

HTML.Partial("~/Views/Group1/MyPartialView.cshtml",Model) 

Một ý tưởng khác tôi đã có là một tệp Xem một phần có điều kiện Mã khối, nhưng tôi nghi ngờ điều này đi ngược lại mọi thứ mà PartialViews sắp sửa.

Cuối cùng có sự khác biệt về hiệu suất nếu có nhiều lượt xem một phần nhỏ so với một phần xem lớn với nhiều thành phần có điều kiện không? Tôi đoán tôi nghĩ rằng một tập tin tải vào bộ nhớ và biên dịch để mã như trái ngược với nhiều tải tập tin nhỏ.

Cảm ơn.

EDIT: Thông tin thêm.

Tôi có bộ điều khiển chung mà tôi đang sử dụng để hiển thị các phần khác nhau của báo cáo, vì vậy tất cả các phần cho chương "giới thiệu" sẽ được hiển thị bằng phần giới thiệu "Introduction.Section1", "Introduction.Section2" . Trong kịch bản của tôi, tôi không tin rằng tôi có phần phổ biến trong các chương, vì vậy tôi có thể đi với "tập tin". ý tưởng, nhưng thư mục Views sẽ lớn, do đó tại sao tôi đang xem xét việc sử dụng các thư mục con.

CHỈNH SỬA: Cảm ơn tất cả. Một số ý tưởng to lớn ở đây. Tôi đã đi với ý tưởng thư mục cuối cùng kể từ khi tôi sử dụng cách tiếp cận này ở nơi khác. Tuy nhiên tôi nhận ra tôi cần phải sử dụng đường dẫn tuyệt đối, nhưng đây không phải là một vấn đề.

+1

Bạn đã xem xét sử dụng các mẫu Trình chỉnh sửa/Hiển thị cho mỗi loại mô hình thực tế? nó cho phép bạn liên kết chế độ xem với kiểu mô hình theo kiểu toàn hệ thống mà không phải cung cấp tên của các chế độ xem một phần theo cách thủ công. (http://stackoverflow.com/a/5497234/1373170) –

Trả lời

3

Miễn là chúng nằm trong thư mục Views ở đâu đó, nó không thực sự quan trọng. Nếu bạn đặt địa điểm ở một vị trí khác không phải là Views/{controller} hoặc Views/Shared, thì bạn sẽ cần vị trí đủ điều kiện, bao gồm Views và tiện ích, vì vậy @Html.Partial("~/Views/Group1/PartialView1.cshtml").

Cá nhân, nếu bạn có nhiều partials được sử dụng trong một bộ điều khiển, tôi sẽ để chúng trong thư mục {controller-name} (với dấu gạch dưới hàng đầu như @IyaTaisho được đề xuất).Nhưng nếu chúng được sử dụng bởi nhiều bộ điều khiển, và bạn cần phải nhóm chúng lại, tôi sẽ nhóm chúng lại theo Views/Shared/{groupName}.

Về một phần lớn so với nhiều phần nhỏ, tôi muốn nói với nhiều phần nhỏ. Có thể có một lý do để làm một cái lớn bây giờ và sau đó, nhưng nói chung, tôi tin rằng một phần nên càng đơn giản càng tốt. Hãy nhớ rằng bạn luôn có thể có partials lồng nhau, vì vậy nếu bạn đã chia sẻ chức năng hoặc bố trí trong nhiều partials, bạn có thể chia nó thành một phần cha mẹ và nhiều partials con bên dưới.

+0

Cảm ơn vì điều này. Trên thực tế, tôi có một bộ điều khiển chung mà tôi đang sử dụng để hiển thị các phần khác nhau của báo cáo, vì vậy tất cả các phần cho chương "giới thiệu" sẽ được hiển thị bằng cách sử dụng phần giới thiệu "Giới thiệu" tức là "Introduction.Section1", "Introduction.Section2". Trong kịch bản của tôi, tôi không tin rằng tôi có phần phổ biến trong các chương, vì vậy tôi có thể đi với "tập tin". ý tưởng, nhưng thư mục Views sẽ lớn, do đó tại sao tôi đang xem xét việc sử dụng các thư mục con. – SamJolly

5

Bạn có thể sử dụng một tập tin con mẹ quy ước đặt tên như:

header.html 
header.login.html 
header.searchbar.html 

Bạn thậm chí có thể mang nó một bước xa hơn:

contact.helpdesk.html 
contact.office.html 

partials Tái sử dụng là nhiều ít thường xuyên hơn partials độc đáo, do đó bạn có thể sử dụng quy ước cho các partials có thể sử dụng lại như:

global.partial1.html 
global.partial2.html 
  • Hạn chế là một thư mục tệp lớn.

  • Lợi ích rất dễ bỏ qua, dễ sắp xếp.

+0

Ý tưởng thú vị. Trong điều khoản của MVC3, bạn có nghĩ rằng điều này là thích hợp hơn để có thư mục cho cùng một mục đích tức là Header \ header.html, Header \ Login.html, Header \ SearchBar.html – SamJolly

+0

+1 Tôi thích cách tiếp cận này, nó có bất kỳ hạn chế? –

+1

@SamJolly Bạn có thể mất trí. Ngoài ra, phụ huynh trong trường hợp này không phải là một thư mục nhưng chính tệp đó. Một phần cho phụ huynh đó là. –

5

Tôi thường thêm dấu _ trước một phần. Ví dụ sẽ có một View chính gọi là Home.cshtml. Các phần (partials) trên trang sẽ có nội dung như sau: _header.cshtml, _footer.cshtml, v.v.

+0

Cảm ơn vì điều này. Có ý thức về cách tiếp cận "_". Vấn đề không phải là để phân biệt Partials, nhưng làm thế nào để tổ chức một số lượng lớn các Partials khác nhau. – SamJolly

+0

Ah, tôi hiểu rồi. Tôi có một vấn đề tương tự. Tôi thừa kế một số lượng lớn trong số họ trong dự án hiện tại của tôi. Bây giờ, tôi đã để cho nó được như là vì nó được dễ dàng hơn để đối phó với (trộn partials và xem). Tôi gần như sẽ đề nghị làm một thư mục cho họ nhưng đồng thời tôi không chắc chắn. Xin lỗi tôi không thể giúp được gì hơn thế. – IyaTaisho

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