2009-03-04 11 views
6

Tôi đã lồng ghép các lớp viewdata bên trong bộ điều khiển của mình và, khi số lượng của chúng tăng lên, tôi bắt đầu tự hỏi liệu đây có phải là một ý tưởng hay không. Sau đó, một lần nữa, một cái gì đó về gây ô nhiễm/Xem và/Bộ điều khiển thư mục với những điều này có vẻ tắt.Tôi nên đặt chế độ xem asp.net-mvc mạnh mẽ của mình ở đâu?

Có quy ước nào tôi thiếu ở đây không? Có thể thư mục a/ViewData? idk, một số vị trí tốt cho các lớp viewdata của tôi là gì?

Trả lời

0

Tôi đã thực hiện chính xác những gì bạn đang đề xuất, tôi có kiểu xem dữ liệu được nhập mạnh mẽ trong/Chế độ xem dữ liệu. Tôi nghĩ về việc đặt nó trong thư mục \ Model nhưng tôi không thích các dự án của tôi có quá nhiều thư mục lồng nhau. \ ViewData cũng là những gì Kigg làm.

0

Tôi đặt các lớp dữ liệu chế độ xem của mình trong một dự án dành riêng cho điều đó. Chúng là của DTO, và đặt chúng trong dự án của riêng chúng thực thi rằng chúng không phụ thuộc vào bất cứ điều gì ở trên trong các lớp kiến ​​trúc.

Sử dụng chúng làm DTO để phân phối đến lượt xem chỉ là một cách để đưa chúng vào sử dụng. Tôi có thể gửi chúng qua dây một thời gian, bên trong một tin nhắn trên một chiếc xe buýt dịch vụ hoặc bất cứ điều gì.

3

Tôi không biết về quy ước. Tôi chỉ đặt tôi dưới /Model/ViewModel/BlahViewModel.cs, v.v. Tôi sẽ không đặt chúng trong một dự án riêng biệt cho đến khi có nhu cầu cụ thể cho điều đó. Sẽ không khó để di chuyển chúng sau này nếu cần thiết.

0

kể từ khi bạn đang sử dụng MVC và cấu trúc thư mục nên đại diện cho cấu trúc không gian tên mã của bạn tôi muốn giới thiệu cho mỗi lĩnh vực đối tượng của bạn, bạn nên nhóm điều khiển của bạn, các mô hình và các dịch vụ vào các thư mục riêng biệt

chúng tôi sẽ sử dụng

  • DomainName

     Controllers 
        Model 
        Services 
    
+0

đúng, nhưng ở đâu bạn sẽ đặt các lớp viewdata? Bộ điều khiển và Chế độ xem phụ thuộc vào chúng. –

+0

Trong thư mục mô hình, vì bạn sẽ muốn chuyển mô hình đến khung nhìn từ bộ điều khiển. MvcContrib có một số phần mở rộng tuyệt vời để cho phép bạn chuyển các mô hình dữ liệu vào dạng xem như ViewData.Add (modelInstance) và ViewData.Get () – Richard