В настоящее время я создаю некоторые пользовательские вспомогательные классы, аналогичные стандарту ASP.NET MVC HtmlHelper
. Когда я посмотрел на реализацию HtmlHelper
, я заметил, что большинство/всех методов генерации HTML (таких как ActionLink()
,, BeginForm()
, TextBox()
и т. Д.) Не реализованы непосредственно внутри класса HtmlHelper, а как методы расширения в отдельных классах (например, в class LinkExtensions
).Почему некоторые методы HtmlHelper реализованы как методы расширения
Помимо лучшей организации исходного кода, существует ли какое-либо преимущество при реализации таких методов, как методы расширения вместо обычных методов?
При создании моих собственных классов-помощников следует также следовать этому шаблону?
Обновление: Когда я писал, что хочу создать свой собственный класс-помощник, то я хотел бы расширить существующий класс HtmlHelper. Вместо этого я создал пользовательский базовый класс для своих представлений (полученный из ViewPage), и я хочу добавить туда дополнительный вспомогательный класс, похожий на классы помощника Html и Url для ViewPage.
Таким образом, не нужно создавать собственные классы-помощники таким же образом? – M4N
Собственно, методы расширения - это единственный способ написать HTML-помощники. –
Я не хочу расширять HtmlHelper! Я уточнил вопрос с некоторыми подробностями. – M4N