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

  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010