Насколько я понимаю, что методы Helper - это действительно то место, где вы можете выполнять сложную логику, в которой бы мы работали, скажем, настраиваемые элементы управления в ASP.NET? Например, я работаю на .com, который использует классический ASP.NET. Природа нашего сайта ОЧЕНЬ сложна, поэтому мы повторно используем и предоставляем различные формы для тысяч продуктов. Каждый продукт может иметь свою форму конфигурации. У нас есть очень полный пользовательский серверный элемент управления RenderForm.cs, который выполняет всю логику. Основываясь на некоторых параметрах конфигурации из таблицы в БД, он говорит, что хорошо, для Продукта 1123 он читает настройку (что наши пользователи конфигурируют из нашей внутренней системы администрирования) и принимает ее и выплевывает динамическую форму (используя буквальные элементы управления и что ) к возрасту.
Так что теперь я думаю о MVC. Да, да, все это делается в View. Ну частично. Вы по-прежнему будете нуждаться в некоторой настраиваемой логике в некоторых .cs, где это не все внедрено в вашем представлении. Было бы глупо думать, что у вас не будет какого-то класса, который будет выплевывать какой-то HTML ... как некоторые очень сложные расширенные вспомогательные методы.
Итак, мой вопрос, являются ли вспомогательные методы или классы, где вы сейчас используете свой собственный тип логики управления сервером? в основном это та же концепция, что вам нужно место, чтобы поместить логику рендеринга HTML с «жестким ядром» в некоторый класс, отличный от контроллера. Ваш контроллер не несет ответственности за рендеринг. Итак, вспомогательные методы, я полагаю, являются так называемыми пользовательскими серверными элементами управления, образно говоря, в классическом ASP.NET. Мне просто нужно «да», или теперь согласен, что вспомогательные методы - это место, где можно использовать всю мою многократно используемую логику, которая выводит html на страницу, и где я могу встроить пользовательские элементы управления в свое представление? Похоже на это.
«Помощники - это, по сути, статические классы, разработанные для того, чтобы содержать логику пользовательского интерфейса, которая в противном случае загромождает ваш пользовательский интерфейс. Думайте о них как об утилитах пользовательского интерфейса». текст ссылки