SORU
30 Aralık 2008, Salı


asp.net mvc ayrı bir proje içine koymak denetleyicileri

Sadece ASP.NET mvc öğreniyorum ve ayrı bir proje içine benim denetleyicileri taşımak için nasıl anlamaya çalışıyorum. Önce asp.net web uygulamaları tasarladım genellikle bu modeller için bir proje oluşturdum, benim mantığım başka bir için, ve daha sonra web vardı.

Şimdi öğreniyorum asp.net mvc, ben umuyordum izleyin benzer bir desen ve modelleri ve denetleyicileri her biri kendilerini ayrı bir proje, ve bırak görünümler/komut/css tasarım var. Model kısmı kolaydı, ama benim anlamadığım ayrı bir projede benim denetleyicileri yapmak için nasıl "" buldum. Ayrıca, eğer bu doğru olup olmadığını bilmek istiyorum. Teşekkürler!

CEVAP
30 Aralık 2008, Salı


Öncelikle, kesinlikle ayrı bir proje halinde model koymak için iyi bir fikirdir. Keşfettiğin gibi, bu önemsiz.

Denetleyicileri ve Görüşlerini ilgili, yani belirli bir uygulama yapmak için özel bir ihtiyaç olsa da, en temel projeleri için onları ayırmak için belirgin bir avantaj görmüyorum.

Eğer bunu seçerseniz, o zaman senin denetleyicileri bulmak için nasıl çerçeve söylemek gerekir. Bunu yapmanın temel yolu, kendi ControllerFactory sağlayarak. Bu DefaultControllerFactory bu nasıl yapılır için bir fikir almak için kaynak kodu bir göz atın. Bu sınıf kistlerinin alt tiplerinin belirlenmesindeki ve(dizi) controllerName GetControllerType yöntemi geçersiz kılma sorduğun şey yapmak için yeterli olabilir.

Kendi özel ControllerFactory oluşturduktan sonra, aşağıdaki satırı küresel Application_Start ekleyin.asax nerede çerçevesini anlatmak için:

ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());

Güncelleme:this post okuyunvemesaj daha fazla bilgi için bağlantılar. Bu konuda yazı Phil Haack yorum

ControllerBuilder.Current.DefaultNamespaces.Add(
    "ExternalAssembly.Controllers");

tam bir çözüm değil, ama muhtemelen basit durumlar için yeterince iyi. ...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • picster

    picster

    20 NİSAN 2006
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011