2012-03-26 12 views
6

W środowisku ASP.NET MVC3 próbuję ustawić klasę css, którą ustawia metoda sprawdzania poprawności błędu. (Nie this question, zaakceptowana odpowiedź po prostu DODAJE klasę, chcę ją całkowicie przesłonić.) Patrząc na źródło MVC3, znalazłem właściwość ValidationInputCssClassName w klasie HtmlHelper. Można go ustawić i przechowuje wartość w dostawcy pamięci, jeśli jest ustawiony. Metoda get dla właściwości zwraca [wartość dostawcy] ?? [domyślna nazwa klasy].Klasa HtmlHelper w przestrzeniach System.Web.Pages.Html vs System.Web.Mvc

Teraz po prostu wpisz HtmlHelper.ValidationInputCssClassName (MSDN entry) w swoim kodzie kontrolnym, zobaczysz, że jest to statyczne pole tylko do odczytu. Powodem tego jest to, że istnieją dwie klasy HtmlHelper, jedna w przestrzeni nazw System.Web.Mvc, a druga w przestrzeni nazw System.Web.Webpages.Html. Właściwość System.Web.Webpages.Html.HtmlHelper.ValidationInputCssClassName (MSDN entry) można ustawić, ale wydaje się, że nie ma ona żadnego wpływu na wygenerowany kod bez względu na to, gdzie go ustawię.

Czego mi brakuje? I jaka jest różnica między tymi klasami?

Odpowiedz

3

Nie jestem pozytywny, ale myślę, że System.Web.WebPages.Html jest do korzystania z WebForms ASP.net z maszynką Razor.

Od są wszystkie pola tylko do odczytu, myślę, że jedynym sposobem obejścia tego jest utworzenie własnych metod rozszerzenia HtmlHelper, aby można było dostosować to zachowanie.

Od MSDN:

Przestrzeń nazw System.Web.WebPages zawiera podstawowe klasy, które są używane do renderowania i wykonywanie stron, które są budowane przy użyciu ASP.NET Web Pages ze składni Razor.

+0

Używam maszynki Razor. Właściwość HtmlHelper w przestrzeni nazw Web.WebPages jest wyraźnie przeznaczona do modyfikowania przez coś. Roll-your-own to ostatnia deska ratunku, nie chcę przenosić aktualizacji z każdą wersją MVC! – Paul

+0

@Paul Mówię o WebForms z maszynką Razor. To tylko domysły, ale tak to brzmi, jakby to miało być użyte. Witryny WWW ASP.net WebForms. – Dismissile

3

Patrząc na opis przestrzeni nazw, wydaje się, że jeden z nich został zaprojektowany dla Razor i jest przeznaczony do użycia z WebMatrix.

referencyjny: http://msdn.microsoft.com/en-us/library/gg549171(v=vs.99).aspx

również:

Przestrzeń nazw System.Web.Mvc zawiera klasy, które są wykorzystywane do tworzenia elementów HTML.

Typy w tym obszarze nazw znajdują się w zestawie System.Web.WebPages i są identyczne z odpowiednikami w zestawie System.Web.Mvc.

Numer referencyjny: http://msdn.microsoft.com/en-us/library/system.web.mvc(v=vs.99).aspx

Powiązane problemy