Я не назвал бы это плохой практикой (некоторые не согласятся, но почему они давали нам ту опцию во-первых?), но я сказал бы, что Вы улучшите полную удобочитаемость и пригодность для обслуживания, если Вы не отправите этой практике. Вы уже передали положительную сторону, и это - ограничение функции IDE (т.е. контроль времени проектирования, время компиляции, предупреждая, и т.д.).
Я мог говорить и говорить, сколько принципов это нарушает (повторное использование кода, разделение проблем, и т.д.), но я могу думать о многих приложениях там, которые повреждают почти каждый принцип, но все еще работают после нескольких лет. Я для одного, предпочтите делать мой код максимально модульным и удобным в сопровождении.
Я использую его только иногда, и обычно по некоторой конкретной причине. Я всегда буду более счастливым разработчиком со своим кодом, разделенным полностью от моей разметки HTML. Это - несколько персональное предпочтение, но я сказал бы, что это - лучшая практика.
Это известно как запутанный код, и многие программисты находят это нежелательным... с другой стороны, если Вы и другие разработчики в Вашей компании находите это читаемым и удобным в сопровождении, кто я, чтобы сказать Вам, что сделать.
Наверняка, хотя, использование включает для сокращения дублирования (DRY - не повторяют себя),
Я думаю, что интересно, что больше asp.net требует кода на aspx страницах. listview в 3,5, и даже MVC ASP.NET. MVC не имеет в основном никакого кода позади, но кода на страницах для рендеринга информации.
Ваш решать. Иногда код "spagehetti" легче поддержать, чем создание/использование полного при шаблонной обработке системы для чего-то простого, но после того как Вы получаете довольно сложные страницы, или более конкретно, после того как Вы запускаете включая большую логику в саму страницу, это может испачкаться действительно быстро.
Ее единственное плохая практика, если Вы не можете инкапсулировать его хорошо.
Как все остальное, можно создать противный, нечитабельный запутанный код, кроме теперь Вас имеют теги к содержанию с, которые дизайном не являются большинством читаемых вещей в мире.
Я пытаюсь сохранить тонны if's из шаблона hte, но чрезмерная инкапсуляция, приводит к необходимости посмотреть в 13 различных местах для наблюдения, почему отделение x не стреляет в клиент, таким образом, это - компромисс.
Если Вы думаете о нем с точки зрения шаблонной разработки, то мудро сохранить его в представлении, а не в коде позади. Что, если, если потребности измениться от привязки до элемента списка с незаметным JS для обработки щелчка? Да, это не лучший пример, скорее просто это и пример.
Я всегда пытаюсь думать с точки зрения того, если у меня был разработчик (HTML, CSS, что-либо), что было бы я иметь его выполнение и что было бы я сделать в коде позади, и как делают мы не ступаем на пальцы ног друг друга.
Это не, но иногда это - необходимое зло.
Возьмите свой случай для примера, хотя код позади, кажется, имеет лучшее разделение беспокойства, но проблема с ним состоит в том, что это не может выделить проблемы так ясно, как Вы желаете. Обычно, когда мы делаем код позади материала, мы не создаем приложения в платформе MVC. Код позади кода также не легко поддержать и протестировать так или иначе, по крайней мере, когда выдерживают сравнение с MVC.
Если Вы создаете ASP.NET приложения MVC затем, я думаю, что Вы, конечно, застреваете со встроенным кодом. Но создание в шаблоне MVC является лучшим способом пойти о с точки зрения пригодности для обслуживания и тестируемости.
Суммировать: встроенный код не является хорошей практикой, но это - необходимое зло.
Мои 2 цента.
Обычно я использую как этот путь.
<a href='<%# DataBinder.Eval(Container.DataItem,"Id",""/Admin/Content/EditResource.aspx?ResourceId={0}") %'>