ASP.NET MVC: Razor @helper против методов расширения HtmlHelper - что предпочтительнее? - PullRequest
8 голосов
/ 09 июня 2011

Механизм представления Razor в ASP.NET MVC поддерживает @helper для определения небольших вспомогательных методов.Кажется, вы можете сделать то же самое, добавив методы расширения в HtmlHelper.В каких ситуациях лучше всего использовать каждый из них?

Ответы [ 2 ]

8 голосов
/ 09 июня 2011

Субъективный вопрос, так что вот мой субъективный и предвзятый ответ: когда вспомогательный код включает в себя большое количество кода C #, используйте пользовательский HtmlHelper, а когда это основная разметка, вы можете использовать @helper.Но при условии, что, когда у вас есть разметка, вы можете использовать партиал, такой как @Html.Partial("_foo", SomeModel), или шаблоны редактирования / отображения, такие как @Html.EditorFor(x => x.Foo), @helper на самом деле не имеет никакого практического применения.Лично я никогда не использовал @helper, кстати, и я никогда не рекомендовал его использовать людям, с которыми я консультировался.

7 голосов
/ 09 июня 2011

Да, это правда, хотя с @helpers кажется немного легче работать, если есть хороший кусок разметки, который включен - расширения HTML и более обширная разметка не очень хорошо сочетаются, IMO.

С другой стороны, @helpers не может быть модульно протестирован, как расширения HTML.

...