Я думаю, что каждый полезен в ситуациях.Метод eval - это быстрый и легкий способ сделать что-то простое, если не требуется много логики.Но я видел, как это злоупотребляли неопытные программисты.
Недавно я взял на себя разработку проекта, в котором они использовали ретранслятор.Они делали что-то вроде следующего:
<asp:Repeater>
<ItemTemplate>
Field Visible = '<%# (method(dataItem.a)) %>
Field
Field Visible = '<%# method(Eval(dataItem.a),Eval(dataItem.b)) %>'
Field
Field Visible = '<%# (method(dataItem.a)) %>'
Field Visible = '<%# (method(dataItem.b)) %>'
</ItemTemplate>
</asp:Repeater>
На это было просто больно смотреть.Похоже, что разработчики просто продолжали добавлять больше полей и вызывать один и тот же метод, чтобы проверить, должно ли поле отображаться или нет.Нечто подобное можно легко обработать в ItemDataBound, и его легче поддерживать.И вы всегда должны программировать, ожидая, что ваш код нужно будет изменить / добавить позже.