2011-05-16 9 views
11

Diğer projeler için bir NuGet paketi olarak bırakabileceğim bir CSS çerçevesi üzerinde çalışıyorum. Jilet, düzen sayfası dışarıdayken/Görünümler/Paylaşılanlar'da neden ViewBag, Url.Content vb. Göremiyor?

, temiz Tüm çerçeveyi tutabilmek için - görünümleri, stiller, resimler ve kalıp sayfalarını/düzen sayfalarını - aslında ~/CssThing/altında saklanır

İşleri mükemmel ben taşıdığınızda WebForms motoru görebilir, ancak birlikte içine _layout.cshtml dosyası ~/CssThing/ve sonra söylemek benim Razor sayfasını değiştirin:

@{ 
Layout = "~/CssThing/_layout.cshtml"; 
} 

o ViewBag tanımlanan veya bu The name 'Url' does not exist in the current context veya önermek weirdness çeşitli diğer bitleri görünümüdür göremediğinden şikayet başlar Artık uygun temel sınıftan miras kalmıyor.

Bunu nasıl çalıştırabilirim?

NOT: Her şeyin bu şekilde ayrılmasının nedeni, NuGet'i varolan kodun üzerine yazmaya zorlamanın bir yolu olmadığı ve boş bir MVC3 web uygulamasının tüm jQuery, vb. Dosyaların yarısı zaten mevcut olduğundan, çerçevem ​​yarıya yayıldıysa, her şeyi tamamen ayrı tutuyorum.

cevap

9

Yeni görünümler dizininde bir web.config dosyanız bulunduğunu kontrol edin. Varsayılan projede oluşturulanı Görünümler'e kopyalamak en iyisidir. Bu web.config, Razor'un varsayılan sayfa taban sınıfı gibi ayarlarını ve hangi ad alanlarının gizli olarak kullanılacağını tanımlar. Bu ad alanları, hangi HTML yardımcılarının kullanabileceğini tanımlar.

+0

Harika. Teşekkür ederim. –

+0

Sizler –

+0

cool'siniz. teşekkür ederim –

4

@inherits WebViewPage'u el ile belirtmeniz veya default Web.config section (taban türünü ayarlar) görünümleri olan klasöre eklemeniz gerekir.

İlgili konular