XHTML 1.0 Строгое (или переходное) соответствие в ASP.NET 2.0/3.5

Есть ли хорошие методы для получения ASP.NET 2.0 для проверки в соответствии с DTD XHTML 1.0 Strict (или Transitional)? Мне интересно услышать некоторые идеи, прежде чем я взломаю ядро ​​ответа HTTP.

Одной из основных проблем является сам тег формы, это результат, который я получил от W3C, когда я пытался проверить:

Line 13, Column 11: there is no attribute "name".
<form name="aspnetForm" method="post" action="Default.aspx" onsubmit="javascript

Этот тег очень важен для ASP.NET, как вы все знаете. Хммм.

Ответ 1

ASP.NET 2.0 и выше действительно могут вывести Strict (или Transitional) XHTML. Это позволит решить вашу проблему с отсутствием атрибута "имя", в том числе. Чтобы установить это, обновите файл Web.config примерно так:

<system.web>
    ... other configuration goes here ...
    <xhtmlConformance mode="Strict" />
</system.web>

Для Transitional XHTML вместо этого используйте mode="Transitional".

См. Практическое руководство. Настройка рендеринга XHTML в веб-узлах ASP.NET на MSDN.

Ответ 2

Вы рассмотрели ASP.NET MVC Framework? Вероятно, это будет лучше, если требуется строгое соблюдение XHTML. Вы получаете больше контроля над своей продукцией, но вы будете ступать по незнакомой территории, если вам уже нравится традиционная модель ASP.NET.

Ответ 3

Его можно изменить вывод элементов управления ASP.NET с помощью таких методов, как CSS Adapters. Хотя я лично не рекомендовал бы использовать их из коробки, это может дать вам несколько советов по хорошему решению.

Обычно я избегаю использования элементов управления ASP.NET, где бы они ни были, кроме тех, которые не генерируют разметку самостоятельно, например, элемент управления Repeater. Я бы заглянул в структуру ASP.NET MVC (на что построен StackOverflow), так как это дает вам 100% контроль над разметкой.