2014-02-05 3 views
0

Работа с устаревшим веб-приложением asp.net, есть ли способ добавить условные комментарии вокруг двух тегов <html>, сохраняя при этом атрибуты runat = "server"? (Обнаружение браузера на стороне сервера, повторная запись обработанного рендеринга и добавление класса css на стороне клиента не являются параметрами). Ниже не работает ...Как обернуть несколько веб-форм asp.net <html> тегов в условных комментариях?

<!--[if lt IE 9]> 
    <html class="old-ie" runat="server"> 
<![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> 
    <html runat="server"> 
<!--<![endif]--> 

это не работает, либо ...

<html runat="server" <!--[if lt IE 9]>class="old-ie"<![endif]-->> 

Исключение будет выброшен в обоих случаях.

ответ

0

В конце концов, я решил просто использовать условные комментарии вокруг таблицы стилей, вместо того чтобы пытаться украсить тег <html> IE-специфическими классами css.

0

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

Помните, что эти условные комментарии всегда находятся в сгенерированном HTML. В первом сценарии у вас есть два тега HTML с атрибутами runat, которые являются недопустимыми, следовательно, ошибка. (На самом деле только два тега HTML без атрибутов runat также были бы недопустимыми, но, вероятно, это привело бы к ошибке парсера.) Во втором случае у вас есть комментарий, забитый в середину HTML-тега, который генерирует ошибку.

Вы могли бы сделать что-то вроде этого:

<html runat="server" id="HtmlTag" /> 

, а затем в коде

HtmlTag.CssClass = "old-ie"; 

(Это проверялось, но вы получите идею)

Это позволит вам управлять код немного проще, имеют более четкие выходы HTML и теоретически более быстрое время загрузки страницы.

+0

К сожалению, это не сработает, потому что для этого потребуется обнаружение браузера на стороне сервера – bluevoodoo1