Не нарушают ли пользовательские вспомогательные классы HTML модель ASP.NET MVC? - PullRequest
6 голосов
/ 30 декабря 2008

В связанном посте я упоминал, что нашел полезные HTML-помощники при разработке. Например, когда мне требуется подкачка для «сетки», у меня есть специальный помощник, который я могу вызвать Html.Pager().

Некоторые отметили, что HTML-помощники являются нарушением модели MVC. Лично я не вижу, чтобы это отличалось от существующих помощников, таких как Html.Textbox() или Html.ActionLink().

Я все еще пытаюсь узнать больше о MVC, поэтому все перспективы приветствуются.

1 Ответ

16 голосов
/ 30 декабря 2008

Обратите внимание, что все существующие помощники написаны как методы расширения класса HtmlHelper. Мы явно использовали этот подход, чтобы другие могли писать свои собственные вспомогательные методы как методы расширения HtmlHelper.

Так что, в общем, это не нарушение модели MVC. Я думаю, это действительно зависит от того, что вы делаете в своем помощнике. Помощники должны просто отображать html на основе переданных им аргументов. Они не должны осуществлять доступ к данным и т. Д. *

Они просто инкапсулируют код для рендеринга общих частей разметки. Если вы делаете это, то вы не нарушаете модель ASP.NET MVC.

...