2009-03-04 17 views
6

Gromadziłem moje klasy viewdata wewnątrz kontrolerów i, gdy ich liczba rośnie, zaczynam się zastanawiać, czy to dobry pomysł. Z drugiej strony, coś o zanieczyszczaniu katalogów/Views i/Controllers tymi rzeczami wydaje się wyłączone.Gdzie powinienem umieścić moje asp.net-mvc z mocno wpisanymi widokami?

Czy istnieje tu konwencja, której tu brakuje? Może katalog/ViewData? idk, jakie są dobre lokalizacje dla moich klas viewdata?

Odpowiedz

0

Zrobiłem dokładnie to, co sugerujesz, mam moje mocno wpisane dane widoku w/ViewData. Myślałem o umieszczeniu go w katalogu \ Model, ale nie podoba mi się to, że moje projekty mają zbyt wiele zagnieżdżonych katalogów. \ ViewData jest również tym, co robi Kigg.

0

Umieściłem moje klasy danych widoku w projekcie poświęconym właśnie temu. Są to DTO, a umieszczenie ich w ich własnym projekcie powoduje, że nie zależą one od niczego ponad warstwami architektonicznymi.

Używanie ich jako DTO do wyświetlania poglądy to tylko jeden ze sposobów ich użycia. Mogę wysłać je przez przewód, w wiadomościach w autobusie serwisowym lub czymkolwiek.

3

Nie znam konwencji. Po prostu umieściłem moje pod /Model/ViewModel/BlahViewModel.cs itd. Nie umieszczałbym ich w osobnym projekcie, dopóki nie pojawi się taka potrzeba. W razie potrzeby przeniesienie ich później nie byłoby trudne.

0

ponieważ używasz MVC i struktury folderów powinny stanowić strukturę przestrzeni nazw kodu Polecam dla każdego z obiektów domen zalecana grupa kontrolerów, modele i usługi w folderach oddzielne

chcielibyśmy użyć

  • DomainName

     Controllers 
        Model 
        Services 
    
+0

porządku, ale gdzie czy umieściłbyś klasy viewdata? Kontrolery i widoki są od nich zależne. –

+0

W folderze modelu, tak jak chcesz przekazać model do widoku z kontrolera. MvcContrib ma kilka doskonałych rozszerzeń umożliwiających przekazywanie modeli danych do danych widoku, takich jak ViewData.Add (modelInstance) i ViewData.Get () – Richard

Powiązane problemy