Класс HtmlHelper в пространствах System.Web.Webpages.Html и System.Web.Mvc

В ASP.NET MVC3 я пытаюсь установить класс css, который устанавливает метод помощника проверки достоверности. (Не этот вопрос, принятый ответ просто ADDS класса, я хочу полностью переопределить его.) При взгляде на источник MVC3 я нашел свойство ValidationInputCssClassName в классе HtmlHelper. Он настраивается и сохраняет значение в хранилище, если он установлен. Метод get для свойства возвращает [значение поставщика] ?? [имя класса по умолчанию].

Теперь, если вы просто наберете HtmlHelper.ValidationInputCssClassName (запись MSDN) в коде контроллера, вы увидите, что это статический readonly поле. Причина этого в том, что существуют два класса HtmlHelper, один из которых находится в пространстве имен System.Web.Mvc, а другой - в пространстве имен System.Web.Webpages.Html. Свойство System.Web.Webpages.Html.HtmlHelper.ValidationInputCssClassName (запись MSDN) может быть установлено, но оно, похоже, не влияет на сгенерированный код независимо от того, где я установите его.

Что мне не хватает? И в чем разница между этими классами?

2 ответа

Я не уверен, но я думаю, что System.Web.WebPages.Html предназначен для использования ASP.net WebForms с Razor.

Так как ValidationInputCssClassName и т.д. - все поля readonly, я думаю, что единственный способ, которым вы собираетесь обойти это, - создать собственные методы расширения HtmlHelper, чтобы вы могли настроить это поведение.

Из MSDN:

Пространство имен System.Web.WebPages содержит основные классы, которые используются для рендеринга и выполнения страниц, созданных с использованием веб-страниц ASP.NET с синтаксисом Razor.


Посмотрев на описание пространства имен, кажется, что один из них предназначен для Razor и предназначен для использования с WebMatrix.

Ссылка: http://msdn.microsoft.com/en-us/library/gg549171(v=vs.99).aspx

также:

Пространство имен System.Web.Mvc содержит классы, которые используются для создания элементов HTML.

Типы в этом пространстве имен находятся в сборке System.Web.WebPages и идентичны эквивалентным типам в сборке System.Web.Mvc.

Ссылка: http://msdn.microsoft.com/en-us/library/system.web.mvc(v=vs.99).aspx

licensed under cc by-sa 3.0 with attribution.