SORU
19 Mart 2009, PERŞEMBE


ViewModel En İyi Uygulamalar

this question, akıllı bir denetleyici oluşturmak için yapar gibi görünüyorViewModeldaha doğru bir şekilde görüntülemek için çalıştığını modeli yansıtır, ama kuralları (eğer zaten açık değilse MVC deseni yeniyim, bazı merak ediyorum.

Temelde şu sorular vardı:

  1. Ben normalde bir sınıf/dosya var gibi. Bu bir anlam ifade etmezViewModeleğer bir görünüm için bir kumanda veri el kapatmak için yaratılan ise sadece?
  2. Bir eğerViewModelkendi dosyasına ait ve dizin/proje yapı işleri ayrı tutmak için, burada mı kullanıyorsunViewModelait dosya?Denetleyicileridizin?

Şimdilik bu kadar temelde. Birkaç soru daha geliyor olabilir, ama bu son bir kaç saat için beni rahatsız ediyor, ve tutarlı rehberlik başka bir yerde bulmak için görünmüyor olabilir.

DÜZENLEME: Diğer örnek NerdDinner app bakıyor, ViewModels Controllers, ama yine de kendi dosyalarında değil mi bu beni rahatsız eder, bir parçası gibi görünüyor.

CEVAP
29 Mart 2009, Pazar


Bir "" her görünüm için. ViewModel derim ben oluşturmak Bir klasör ViewModels adlı MVC Web projemde koydum. Ben, temsil ettikleri denetleyicisi ve eylem (veya Görünüm) sonra onlara isim. Eğer öyleyse, Üyelik denetleyicisinde Kayıt görüntülemek için veri geçmek istiyorum eğer bir MembershipSignUpViewModel yaratıyorum.cs sınıfı ve ViewModels klasörü içine koyun.

Sonra gerekli özellikleri ve yöntemleri görünümüne denetleyicisi veri aktarımını kolaylaştırmak için ekliyorum. Bu Automapper gerekirse Etki alanı Modeli için benim ViewModel almak ve tekrar tekrar kullanıyorum.

Bu da diğer ViewModels türü özellikleri içeren kompozit ViewModels için çalışıyor. Eğer üyelik denetleyicisi dizin sayfasında 5 widget varsa örneğin, her bir kısmi görünümü - nasıl da şiddetli bir İndeks eylemden verileri aktarmak mı? bir ViewModel oluşturduğunuz Yazın MyPartialViewModel bu MembershipİndexViewModel için bir özellik eklemek ve kısmi işlerken Modele geçmesi.MyPartialViewModel.

Bunu bu şekilde yapmak size kısmi bir ViewModel özelliklerini ayarlamak için Dizin görünümü hiç değiştirmek zorunda kalmadan sağlar. Yine de sadece Model olarak geçer.MyPartialViewModel yani elimizde bir bütün zinciri yaptığın tüm kısmi ViewModel için bir özellik ekleme olduğunda, bir şey düzeltmek için gitmek zorunda, bu yüzden bir şans daha var.

Ayrıca ad "MyProject.katacak Web."Web.ViewModels bana şimdiye kadar her görünüm, açık bir alma deyimi eklemeden herhangi bir görünümde onları referans izin verecek kadar config. Sadece biraz daha temiz hale getirir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • joshsnice

    joshsnice

    28 Kasım 2006