2010-07-21 3 views
3

Я понимаю, что может быть невозможно отделить клиентскую сторону от серверного кода в Web-форматах ASP.NET. Какие шаги можно предпринять для создания веб-сайта на этой основе, который соответствует веб-стандартам?Какие шаги можно предпринять для создания семантического, доступного, совместимого со стандартами вывода на стороне клиента с помощью Web-форм ASP.NET?

Я особенно заинтересован в том, чтобы сделать сайт доступным с отключенным JavaScript и совместимым с WCAG2 на уровне соответствия AA.

Возможно ли достичь разделения между контентом (HTML), представлением (CSS) и поведением (JavaScript)?

ответ

2

Это возможно, но это не так легко в ASP.Net WebForms:

  1. Новые версии ASP.Net более совместимым со стандартами, чем старые. Таким образом, используйте новейшую версию ASP.Net. ASP.Net 4 имеет некоторые полезные функции, чтобы сделать очистку разметки HTML (см. blog post)
  2. Если вы все еще недовольны кодом, генерируемым некоторыми стандартными элементами управления, ищите их сторонние эквиваленты. Есть хорошие шансы, что вы найдете средства с открытым исходным кодом или коммерческим контролем, создавая гораздо более чистый код, чем стандартные.
  3. Если вы по-прежнему недовольны некоторыми элементами управления сторонних разработчиков, напишите свои пользовательские элементы управления и заполните их с помощью чистого чистого стандартного кода.
0

Если вы на самом деле не наклонены на ASP.NET, вы также можете попробовать попробовать ASP.NET MVC. MVC имеет много общего с ASP.NET. Но самое главное, вы полностью контролируете вывод HTML, который отображается в браузере.

Если у вас нет возможности выбрать MVC, и вас не устраивает выходной элемент управления ASP.NET по умолчанию, вы можете использовать метод Render серверного элемента управления ASP.NET. См. Rendering an ASP.NET Server Control.

Вы также можете переопределить выходные данные дочерних элементов управления, если это составной элемент управления, например DataGrid.

Надеюсь, это поможет.

+0

там причина вы вывесили ссылку на .NET 1.1? –

+0

@ Джон, у меня не было особых причин. Я просто хотел показать ссылку, которая продемонстрировала, как это можно сделать. –

+0

это нормально, но если вы опубликуете ссылку .NET 1.1, читатель последует за ней по ссылкам .NET 1.1, что приведет к большему количеству ссылок .NET 1.1 - читатель будет застрял в лабиринте документации с 2003 года. –

1

Вы можете наследовать и переопределять метод Render, но для более сложных элементов управления вы, вероятно, не захотите установить время, когда существуют лучшие альтернативы.