2008-08-30 52 views
9

Vì vậy, tôi đang bắt tay vào một dự án ASP.NET MVC và trong khi trải nghiệm là một tổng thể tốt, tôi không hoàn toàn hài lòng với mớ hỗn độn spaghetti mà bộ điều khiển của tôi đã trở thành. Tôi đã nhìn xung quanh trực tuyến (CodeCampServer, vv ...) và tất cả họ dường như chịu cùng một vấn đề trong đó phương pháp điều khiển vi phạm SRP (nguyên tắc trách nhiệm duy nhất) khá nhất quán - chẳng hạn như một phương pháp điều khiển mà chỉ đơn giản làm cho xem nếu yêu cầu GET nhưng cập nhật mô hình nếu đó là POST. Bây giờ tôi đã có phương pháp điều khiển chịu trách nhiệm cho nhiều tuyến đường hợp lý trong suốt ứng dụng - nói rằng nó kiểm tra xem nút nào đã được nhấp vào biểu mẫu và hành động phù hợp. Tôi có thể chuyển hướng mỗi lần nhấp vào nút đến một hành động biểu mẫu khác bằng JavaScript, nhưng có điều gì đó không cảm thấy đúng ... Một vấn đề lớn khác là sự gia tăng các chuỗi ma thuật - ViewData ["foo"] = blah; Dài câu chuyện ngắn, làm thế nào để các bạn cấu trúc logic điều khiển của bạn? Một đối tượng mô hình khổng lồ trên mỗi chế độ xem? Rất nhiều phương pháp điều khiển nhỏ và JavaScript là router? Mục tiêu của tôi là mã có thể duy trì - khi các tính năng được xếp chồng lên trên tôi bắt đầu trượt xuống dốc trơn đó ...ASP.NET MVC: Cấu trúc bộ điều khiển

Trả lời

8

Xem trước ASP.NET 5 (có sẵn trên CodePlex) có một câu trả lời cho: thuộc tính [AcceptVerbs]. Phil Haack có một cuộc thảo luận blog post cách nó được sử dụng.

Đối với câu hỏi về ma thuật dữ liệu chế độ xem, đây là một vấn đề thú vị. Nếu bạn nghĩ về một cái nhìn như là một loạt các thành phần bán độc lập (đặc biệt là trong ánh sáng của hỗ trợ xem một phần mới), thì làm cho một mô hình mạnh mẽ trở nên ít lý tưởng hơn, vì một số phần của khung nhìn phải tương đối độc lập nhau.

0

Những người khác nhau xử lý vấn đề này như thế nào? Tôi biết rằng tôi chỉ dành một vài giờ xem xét các mớ hỗn độn bên trong của thư mục mô hình. Tôi đang tìm kiếm việc tạo thư mục là hữu ích trong việc giảm sự lộn xộn hình ảnh, bằng cách sử dụng các không gian tên phù hợp cũng giúp rất nhiều.

Nhưng bộ điều khiển của tôi là khối nguyên khối vào lúc này. rắc rối là tôi đã tập trung vào việc học đến thời điểm này trong dự án (vẫn còn rất nhiều để sắp xếp ra).

Tôi đang xử lý tốt trên MVC ngay bây giờ, vì vậy đã đến lúc xem xét độ phức tạp và cân nhắc sửa đổi các bộ điều khiển thành các chức năng được đặt tên và sạch hơn.

Có phải những người khác vi phạm bộ điều khiển của họ vào bộ điều khiển phụ không? (Nếu có một điều như vậy)

+0

Bí quyết để mã hóa bộ điều khiển của bạn là nhìn vào chúng và nói 'nếu mỗi phương pháp hành động nhận được trên 20 hoặc 30 dòng hoặc một số số tương đối nhỏ, làm cách nào tôi có thể giảm?', Về cơ bản, giữ cho nó KHÔ và suy nghĩ lại những gì bạn đang làm và di chuyển logic đó vào một số lớp SERVICE thích hợp, có thể được tái sử dụng. –

+0

Ngoài ra, tải về ROB CONERY's StoreFront MVC Starter Kit và xem cách anh ấy xếp lớp giải pháp của mình -> awesomesauce rất uber. (Google nó, tôi không thể bị làm phiền khi tìm ra liên kết vào giờ muộn (đầu ?!) giờ sáng ... hth! –

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