Это теперь прояснилось в моем MS. Проблема, которую я обнаружил, была вызвана тем фактом, что атрибут «действие» в серверных формах не действовал до .NET 2 SP2, но теперь его можно установить. Блоки рендеринга кода никогда не работали в значениях атрибутов - это объясняется ближе к концу этого поста.
Это было следствием преднамеренного изменения поведения, представленного в Microsoft .NET Framework 3.5 SP1. До пакета обновления атрибуты действия и метода в серверных тегах FORM не могли быть переопределены. Если указано, они будут заменены ASP.NET на «POST» и «имя страницы».
Ранее синтаксический анализатор страниц ASP.NET не препятствовал определению этих атрибутов, хотя в документации рекомендовано использовать его для атрибута действия:
http://msdn.microsoft.com/en-us/library/k33801s3.aspx
В частности, комментарий (в контексте элемента FORM):
• «Открывающий тег не должен содержать атрибут действия. ASP.NET динамически устанавливает эти атрибуты при обработке страницы, переопределяя любые настройки, которые вы можете выполнить.»
Проблема, о которой первоначально сообщал Джош, когда блок кода не интерпретировался, не является новым поведением, но является известной ошибкой - блоки отображения кода нельзя использовать в атрибутах управления сервером. Это сообщается как ошибка «Connect»:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=109257
который содержит следующее:
«Атрибуты серверных элементов управления не могут принимать встроенное выражение в качестве значения. Это объясняет непредвиденное поведение, как показано с помощью:« ...» Однако встроенный код можно использовать для значений атрибутов. «