2009-04-20 44 views
31

Tôi có một trang web ASP.Net 2.0 và muốn dịch nó thành mô hình MVC (tôi mới đến đây), nhưng bắt đầu từ Zero.Chủ đề Asp.Net MVC, làm cách nào?

Tôi có một số chủ đề trong trang web cũ của mình, nhưng đọc ở đây và ở đó, có vẻ như Chủ đề không phù hợp với mô hình MVC.

Câu hỏi đặt ra là:

Thực tiễn tốt nhất trong MVC để xây dựng trang web có thể tùy chỉnh cho người dùng theo chủ đề là gì? Bạn có thể đưa ra một ví dụ nhỏ, nếu có?

Lưu ý: Tôi biết về this nhưng họ không nói về các phương pháp hay nhất hoặc cách bắt đầu.

+0

Bạn cần bao nhiêu tùy chỉnh? Nếu nó chỉ là về màu sắc và phông chữ, một thay thế CSS đơn giản sẽ làm các trick. – User

+0

Chủ yếu là tôi muốn người dùng có thể thay đổi chủ đề, trong Asp.Net 2.0 tôi đạt được dễ dàng, và muốn biết làm thế nào một anh chàng MVC-ish thường sẽ nhận được phương pháp này –

Trả lời

26

Đây là mã của tôi mà tôi đã sử dụng để thực hiện "Chủ đề" trong ASP.NET MVC:

ASP.NET MVC: Implement Theme Folders using a Custom ViewEngine

Thật tuyệt khi bạn có thể chỉ trao đổi trên file CSS để thay đổi chủ đề , nhưng điều này thực sự không thực tế lắm trong một tấn trường hợp. Đặc biệt là khi mỗi chủ đề cần phải có một bố cục hoàn toàn khác nhau. Trong trường hợp đó, bạn cần thay đổi CSS và HTML được hiển thị và đây là lý do tại sao tôi đã viết mã được tìm thấy tại liên kết ở trên.

+4

Chúng tôi không tạo Chế độ xem và Trang chính cho từng Chủ đề. Có vẻ như chúng tôi đang vi phạm hiệu trưởng DRY? – Amitabh

+1

@Amitabh - Đó là lý do tại sao Chris nói, "[chỉ cần hoán đổi CSS] không phải là rất thực tế [...] bạn cần phải thay đổi CSS và HTML." –

+1

Đây có phải là cách tốt nhất để thay đổi bố trí và chủ đề trong MVC4? Bài viết của bạn là năm 2009 nhưng dường như vẫn tồn tại trên web. Có thực sự không có cách nào của NET làm nó ... vẫn còn? – ppumkin

20

Một sạch, ngữ nghĩa chính xác HTML với CSS tốt là cách để chủ đề bất kỳ ứng dụng web, cho dù đó là ASP.NET, ROR, PHP, vv

Ví dụ tốt nhất về sức mạnh của CSS là CSS Zen Garden.

w3schools có số đẹp introduction/tutorial to CSS.

Mỗi người dùng của bạn có thể có một kiểu liên quan đó sẽ được chọn bất cứ khi nào được áp dụng, tức là .:

<link rel="stylesheet" type="text/css" href="<%= Model.SelectedStyleSheet %>"/> 
+3

Trong khi điều này là đúng, và cả hai đều là tài nguyên tốt - nó KHÔNG giải quyết câu hỏi. Có vẻ như Jhonny đang tìm kiếm các mẹo và kỹ thuật để thực hiện một hệ thống chủ đề trong một dự án ASP.NET MVC. – Jason

+5

@ Jason: bạn nói đúng, tôi chỉ cần thêm một cách có thể để thực hiện điều này. –

1

jQuery-ui chủ đề đang tốt đẹp, và không quá khó để thực hiện.

Chỉ cần liên kết đến tệp js và css và đừng quên các biểu tượng. Và đảm bảo sử dụng Url.Content() trong các liên kết đó. Nếu không nó có thể không được liên kết với đường dẫn chính xác, một khi bạn triển khai nó trên một máy chủ sản xuất (tôi rơi vào cái bẫy đó một lần).

+0

Đó không phải là câu trả lời cho câu hỏi. – phd

+0

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ review/low-quality-posts/16681117) –

2

Vì chủ đề được thiết kế để tạo kiểu cho các thẻ, bạn có thể sử dụng CSS để tạo một phương pháp tương tự. Tôi có thể khuyên bạn nên bắt đầu với việc sao chép các chủ đề mặc định của bạn sang định nghĩa css, ví dụ:

html: <input type="button" />

css: đầu vào {color: màu xanh nhạt}

Sau đó cho bất cứ điều gì có chủ đề không phải mặc định của bạn, bạn chỉ có thể áp dụng các lớp học đối với họ. Phải mất một thời gian để viết lại tất cả các chủ đề của bạn như CSS, nhưng một khi thực hiện nó có giá trị nỗ lực.

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