Это просто недостаток компонента HTML-дизайнера Visual Studio. Если вы извлекаете блок кода за пределы атрибута, он прекрасно работает, после того, как вы поместите <%= %>
в атрибут, он больше не даст вам надлежащего IntelliSense в этом блоке. У меня даже было это в атрибуте style="<%= %>"
, которое полностью потерялось и даже не получило правильный цвет синтаксиса (пытается разобрать его как CSS).
Моя теория состоит в том, что анализатор находится в контексте этого тега и атрибута, поэтому он пытается интерпретировать то, что вы делаете, как значения этого атрибута. Например, когда вы набираете открытую кавычку type="
, она знает, чтобы показать вам список общих значений для этого тега. Если вы попытаетесь вызвать IntelliSense в середине type="<%= %>"
, он покажет вам тот же список значений, который не соответствует ожиданиям в этом контексте блока кода.
Я испытываю ту же самую проблему при использовании окраски синтаксиса Visual Studio для редактирования JBST клиентских шаблонов . Разметка идентична, но окраска синтаксиса очень часто случается.
Могу поспорить, что для этого нет исправления, так как это довольно суть для дизайнера. Лучше всего подождать выхода в будущем. Я не пробовал это в Visual Studio 2010, чтобы посмотреть, исправили ли они.