2009-03-04 11 views
6

Ich habe meine ViewData-Klassen in meine Controller verschachtelt, und als ihre Anzahl wächst, frage ich mich, ob das eine gute Idee ist. Dann wieder scheint etwas über die Verschmutzung der/Views und/Controller-Verzeichnisse mit diesen Dingen aus.Wo sollte ich meine asp.net-mvc stark typisierte viewdata setzen?

Gibt es eine Konvention, die ich hier vermisse? Vielleicht ein/ViewData Verzeichnis? IDK, was sind gute Standorte für meine ViewData-Klassen?

Antwort

0

Ich habe genau das gemacht, was Sie vorschlagen, ich habe meine stark typisierten viewdata in/ViewData leben. Ich habe darüber nachgedacht, es in das \ Model-Verzeichnis zu schreiben, aber ich mag es nicht, wenn meine Projekte zu viele verschachtelte Verzeichnisse haben. Die \ ViewData ist auch was Kigg tut.

0

Ich legte meine Datenklassen in ein Projekt, das genau diesem gewidmet ist. Sie sind DTOs, und wenn sie in ihr eigenes Projekt eingefügt werden, wird sichergestellt, dass sie nicht von etwas anderem in den Architekturen abhängen.

Sie als DTOs zu verwenden, um Ansichten zu liefern, ist nur eine Möglichkeit, sie zu verwenden. Ich könnte sie einige Zeit über das Kabel schicken, in einer Nachricht auf einem Servicebus oder was auch immer.

3

Ich kenne keine Konvention. Ich habe nur meine unter /Model/ViewModel/BlahViewModel.cs usw. gesetzt. Ich würde sie nicht in ein separates Projekt stecken, bis es ein bestimmtes Bedürfnis dafür gab. Es wäre nicht schwer, sie später bei Bedarf zu verschieben.

0

da Sie MVC und die Ordnerstruktur verwenden, sollten Sie den Namespace-Struktur des Codes darstellen ich für jedes Ihrer Objekt Domänen empfehlen würde sollten Sie Gruppe Ihre Controller, Modelle und Dienstleistungen in separate Ordner

wir

verwenden würden,
  • Domänenname

     Controllers 
        Model 
        Services 
    
+0

richtig, aber wo würdest du die viewdata Klassen setzen? Controller und Views sind von ihnen abhängig. –

+0

Im Modellordner, da Sie das Modell vom Controller an die Ansicht übergeben möchten. MvcContrib hat einige ausgezeichnete Erweiterungen, um Ihnen zu erlauben, Datenmodelle in die viewdata wie ViewData.Add (modelInstance) und ViewData.Get () zu übergeben – Richard