Предварительная обработка разметки ASP.NET - PullRequest
2 голосов
/ 21 февраля 2009

Итак, мой личный сайт работает на специальном движке блога, который я написал, и я действительно доволен им. Тем не менее, он использует главную страницу, что означает, что ASP.NET добавляет (без веской причины) «ct100» ко всем идентификаторам ... Например:

<div id='menu'>
   <ul>
    <li id="ctl00_homeTab" class="active"><a href="/">Home</a></li>
    <li id="ctl00_codeTab"><a href="/code/">Code / Projects</a></li>
    <li id="ctl00_aboutTab"><a href="/about/">About Me</a></li>
    <li id="ctl00_contactTab"><a href="/contact/">Contact</a></li>
  </ul>
</div>

Я бы хотел немного украсить разметку и удалить ее, или, по крайней мере, переименовать ее во что-то, что имеет больше смысла. Поскольку Webforms довольно подключаемы, я думаю, что есть способ сделать это. Я знаю, что заполнитель контента выступает в роли контейнера именования, но в моем случае я просто хотел бы иметь приличный идентификатор, для начала было бы «master» вместо «ct100».

Пока я глупый и анальный, я хотел бы сделать еще одно исправление отступа разметки при использовании UserControls. Если вы посмотрите на мой сайт , вы увидите, что пользовательские элементы управления не имеют отступов и нарушают поток исходного кода. Это, вероятно, не может быть исправлено без запуска вывода страницы через симпатичный принтер ... и это было бы пустой тратой времени.

Не говорите мне переключиться на MVC. Я уже оценил его и буду придерживаться Webforms.

Ответы [ 6 ]

2 голосов
/ 21 февраля 2009

Хотя в настоящий момент Proberly не очень полезен для вас, следующий выпуск ASP .NET позволит вам лучше контролировать выдаваемые идентификаторы ваших элементов управления.

В этом посте есть хорошая информация ...

http://www.mostlylucid.net/archive/2008/11/03/way-too-much-information-on-control-ids-and-asp.net-4.0.aspx

2 голосов
/ 21 февраля 2009

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

Ваш сайт выглядит отлично - приложите усилия к тому, что фактически отображается в браузере, и к функциям для конечных пользователей. :)

1 голос
/ 21 февраля 2009

Да, вы можете сделать это с помощью управляющих адаптеров ASP .NET 2.0. Адаптеры управления позволяют вам изменять способ, которым существующие серверные элементы управления выводят свой код без необходимости изменения какого-либо кода в ваших файлах ASPX. Вы можете увидеть, как это делается здесь:

http://weblogs.asp.net/scottgu/archive/2006/11/29/tip-trick-use-the-asp-net-2-0-css-control-adapters-for-css-friendly-html-output.aspx

Адаптеры изначально разрабатывались так, чтобы можно было легко использовать CSS с элементами управления .NET, которые отображают таблицы, но также могут использоваться и для ваших целей.

1 голос
/ 21 февраля 2009

Эти префиксы элементов управления - это то, как ASP.NET находит элементы управления на странице для ... если я правильно помню ... viewstate / postback. Я тоже ненавижу эти префиксы, но JavaScript, который генерирует ASP.NET, требует их.

0 голосов
/ 21 февраля 2009

Адаптеры дружественного управления CSS ? Я использую их в нескольких проектах и ​​очень доволен ими. Они даже конвертируются в 3.0, 3.5 приятно.

Адаптер меню делает именно то, что вы хотите.

0 голосов
/ 21 февраля 2009

Полагаю, вы могли бы подключить ResponseFilter , чтобы превратить ... удачи с регулярными выражениями. ;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...