рендеринг aspx страницы в другом

CSS-идентификаторы, такие как классы и идентификаторы, не могут начинаться с цифры (0 - 9).

Из спецификации:

4.1.3 Символы и регистр

В CSS идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [az, AZ, 0-9] и символы ISO 10646 U + 0080 и выше, плюс дефис (-) и подчеркивание (_); они не могут начинаться с цифры , двух дефисов или дефиса, за которыми следует цифра.

blockquote>

Однако в том же разделе также говорится следующее:

Экранирование обратной косой черты всегда считается частью идентификатора или строки.

blockquote>

Это означает, что, хотя вы не можете начать идентификатор с цифры, вы можете использовать escape-код обратной косой черты (\foo), который преобразуется в цифру. Обратите внимание, что это правило применяется в CSS, но не в HTML, где почти любая комбинация символов является приемлемым значением .

Так вот что вы видите в своем коде. Числовые значения класса HTML, которые должны быть экранированы для работы в CSS. Вот несколько примеров:

  • \31 - это кодовая точка Unicode для цифры один.
  • \32 - это кодовая точка Unicode для цифры два.
  • \33 - это кодовая точка Unicode для цифры три.

Другая цель экранирования обратной косой черты в CSS - отменить значение специальных символов.

Косая черта (/) имеет особое значение в CSS . Поэтому его следует избегать для правильного использования.

Итак, давайте теперь расшифруем имена классов в вашем коде:

.\31\/2, .\32\/4, .\36\/12 { width: 50%; }

Первый выход (\31) - это Unicode для «1».

Второй побег (\/2) отменяет особое значение косой черты.

Итак, HTML выглядит так:

class = "1/2"
class = "2/4"
class = "6/12"

Вот еще несколько из вашего списка:

.\31\/3, .\34\/12 { width: 33.33333%; } /* HTML class values = 1/3, 4/12 */
.\32\/3, .\38\/12 { width: 66.66667%; } /* HTML class values = 2/3, 8/12 */
.\31\/12          { width: 8.33333%;  } /* HTML class value  = 1/12      */
.\35\/12          { width: 41.66667%; } /* HTML class value  = 5/12      */
.\31\30\/12       { width: 83.33333%; } /* HTML class value  = 10/12     */
.\31\31\/12       { width: 91.66667%; } /* HTML class value  = 11/12     */

9
задан koraytaylan 15 March 2009 в 13:48
поделиться

5 ответов

Можно представить страницу путем выполнения этого:

StringWriter _writer = new StringWriter();
HttpContext.Current.Server.Execute("MyPage.aspx", _writer);

string html = _writer.ToString();
25
ответ дан 4 December 2019 в 08:34
поделиться

Посмотрите этот вопрос/ответ: я могу настроить Шаблоны HTML/электронной почты в C# на ASP.NET?. Mark Brackett имеет то, что Вы ищете, хотя существует большой другой полезный совет там также.

0
ответ дан 4 December 2019 в 08:34
поделиться

Класс страницы инстанцирует время выполнения ASP.NET, когда запрос выполнен. Таким образом, можно выполнить запрос и получить получение ответ:

using (WebClient client = new WebClient())
using (Stream stream = client.OpenRead("http://mysite.com/notification.aspx"))
using (StreamReader reader = new StreamReader(stream))
{
    var contents = reader.ReadToEnd();
}
0
ответ дан 4 December 2019 в 08:34
поделиться

RenderControl не будет работать, потому что Страница не пройдет, это - жизненный цикл. Я использовал HttpHandler и Ответ. Фильтр для получения потока в прошлом для подобной цели. Я отправил код на форумах ASP.NET ранее.

Править: Если необходимо изменить вывод страницы, необходимо объединить это с Сервером. Выполните перегрузку, на которую указывает MartinNH. Это упростило бы код, удалив Ответ. Фильтр и такой. Если Вы просто хотите вывод страницы непосредственно, метод MartinNH является очень чистым.

0
ответ дан 4 December 2019 в 08:34
поделиться

Хитрые звуки. Следует иметь в виду, что странице будет нужен соответствующий HttpContext также для рендеринга правильно.

Я рассмотрел бы использование UserControl вместо этого. Они могут быть просто загружены и представлены с Page.LoadControl() метод. С небольшим количеством возни можно помешать ему представлять на странице при извлечении, это - HTML.

0
ответ дан 4 December 2019 в 08:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: