Bir css sınıfını MvcHtmlString
içinde kapsüllenmiş bir HTML öğesine enjekte etmek mümkün mü?Bir MvcHtmlString'e bir css sınıfı nasıl enjekte edilir?
Ben şu uyarılar ile, form elemanları (TextBox
, TextBoxFor<>
, vs) için MVC uzantısı yöntemleri kendi sürümlerini oluşturarak birlikte, inşa ediyorum çerçevesinin bir parçası olarak, görevli oldum:
- , site için önceden tasarlanmış olan stilleri eşleştirmek için CSS sınıfları dahil olmak üzere doğru HTML biçimlendirmesini oluşturmaları gerektiğini. Çoğu durumda, bu sadece belirli bir sınıfın eklenmesi anlamına gelir.
- geliştiriciler MVC uzantısı yöntemleri bir
MvcHtmlString
yüzden basit yolu döndürmez hepsi eğer
çoğu taklit etmek bunları kullanarak rahat hissetmeleri mümkün olduğunca MVC uzantısı yöntemlerine kadar doğru olması gerektiğini işlevsellik, bu yöntemleri doğrudan yöntemlerimden çağırmaktır.
`@ Ou.TextBoxFor (m =>: Ben çerçeve kullandığını, geliştiriciler çizgisinde bir şey çağırır, birTextBox
örneğin oluşturmak isteyen nedenle, Html Yardımcısı,OuHelper
kendi var m.Username)
Ve şöyle işlemek için çıkan Html istiyorum:
<input type="text" name="Username" id="Username" class="int-text" />
MVC çerçevesinde olduğu gibi kendi aşırı sürümlerimin kendi sürümlerini oluşturursam, gerektiğinde fazladan CSS sınıflarını eklemeyi kontrol edebilirim, ancak bu yöntemlerden bu tür küçük bir HTML çıktısı değişikliği için çok fazla bir şey gibi görünebilir. Tüm aşırı yüklenmelerin eşdeğer uygulamalarını sağlamanız gerekir (yalnızca TextBox
için jenerik ve jenerik olmayan sürümleri saydığınızda yaklaşık 12 tane vardır). Yapmak istediğim şey, TagBuilder
tersine (çıktıyla başlayıp, MergeAttributes
gibi şeylerin kullanılabilir olmasını sağlayacak bir nesne oluşturuyor) ancak bunun mümkün olduğunu düşünmüyorum.
Net olmak gerekirse: Yazmakta olduğum çerçeve kodunun css sınıflarının kendisinin eklenmesi gerekiyor, ancak geliştiriciler için oluşturduğum uzantı yöntemlerini kullanarak kendi özel css sınıflarını da eklemek mümkün olmalıdır. Bunlar
Alkışlar Daniel - evet, sanırım bu çizgiler boyunca bir şeyler yapacağım. Çok fazla aşırı yüklenme yapmak zorunda kalmamayı umuyordum ama MVC çerçevesi halihazırda sağladığı gibi aynı esnekliği sağlamalıyım. Bazı uzantı yöntemleri oluşturacağım ve sınıfı html özniteliklerine gerektiği gibi birleştireceğim (böylece, çerçevemi kullanan geliştiriciler de gerektiğinde kendi özel sınıflarını ekleyebilirler) – levelnis