Механизм представления Razor в ASP.NET MVC поддерживает @helper для определения небольших вспомогательных методов. Кажется, вы можете сделать то же самое, добавив методы расширения в HtmlHelper. В каких ситуациях лучше всего использовать каждый?
ASP.NET MVC: Razor @helper или методы расширения для HtmlHelper - что предпочтительнее?
Ответы (2)
Субъективный вопрос, поэтому вот мой субъективный и предвзятый ответ: когда вспомогательный код включает в себя количество кода C #, используйте собственный HtmlHelper, а когда это основная разметка, вы можете использовать @helper
. Но если предположить, что, когда у вас есть разметка, вы можете использовать частичное, например @Html.Partial("_foo", SomeModel)
, или шаблоны редактора / отображения, такие как @Html.EditorFor(x => x.Foo)
, @helper
на самом деле не имеет никакого практического применения. Лично я, кстати, никогда не использовал @helper
и никогда не рекомендовал его использование людям, с которыми я консультировался.
Да, это правда, хотя с @helpers кажется немного проще работать, если в него включен хороший кусок разметки - расширения Html и более обширная разметка не очень хорошо сочетаются, IMO.
С другой стороны, @helpers нельзя тестировать, как расширения Html.