Response.Write() - проклятие для дизайнера
Мы можем записать команду генерации динамического HTML в ASP двумя способами:
1) <%=sShopKey%>
2) Response.Write(sShopKey);
Работают они, с внутренней точки зрения, одинаково. Однако они записываются с несколько различным синтаксисом. Сравните два варианта записи:
1) <a href="javascript: alert('Name: <%=obj.getName()%>');">
2) <% Response.Write("<a href=\"javascript: alert('Name: "+obj.getName()+"');\">"); %>
Первый вариант еще выглядит как HTML и доступен для осмысления дизайнером-непрограммистом. Второй вариант, из-за обилия кавычек, конкатенаций и бэкслешей, обычно осмыслению не поддается никак. :( Более того, при достижении определенного уровня сложности, его не могут осмыслить даже авторы через неделю после написания. Поэтому - не стоит использовать Response.Write(...), если это не критично.