Не удается использовать Response.Write в разделе <head>на странице aspx? - PullRequest
5 голосов
/ 18 февраля 2010

Я пытаюсь использовать метод Response.Write () для динамической вставки содержимого в раздел страницы aspx. Мне нужно вставить строковое значение из свойства объекта с выделенным кодом, который является ссылкой на мой файл CSS. Тем не менее, он не обрабатывается должным образом во время выполнения. Объект является общедоступным для класса и гидратируется в событии Page_Load (). Внизу в теле страницы я могу без проблем внедрить другие свойства из объекта Corpoartion.

Почему это не работает в разделе ?

Эта часть не раскрывается правильно:

<link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />

Вот весь раздел :

<head runat="server">
    <title></title>
    <link href="<%= Corporation.PageStyleSheet %>" rel="stylesheet" type="text/css" />
    <script language="JavaScript" type="text/JavaScript" src="cntv_menu.js"></script>
    <script language="JavaScript" type="text/JavaScript" src="cntv_category.js"></script>   
</head>

По какой причине это не будет расширяться должным образом?

Ответы [ 4 ]

6 голосов
/ 18 февраля 2010

Вы не можете использовать <%= %> внутри тега runat="server", которым является ваш тег <head>.

Вы можете либо изменить его на <%# %> и привязать к нему DataBind в коде позади, либо сделать тег ссылки runat="server", присвоить ему id и назначить атрибут из кода позади. *

См. этот ответ , в котором подробно.

0 голосов
/ 06 июня 2018

лучший способ решить эту проблему - использовать OnPreRender

Пример:

Сначала определите свой тег:

<link href="~/css/your_default.css" type="text/css" runat="server" id="myCSS" />

И наOnPreRender:

protected override void OnPreRender(EventArgs e){
     base.OnPreRender(e);
     myCSS.Attributes["href"] = "~/css/your_new.css";
}
0 голосов
/ 23 февраля 2017

Используйте это:

this.myButton.Attributes.Add(attribute, value);

у меня сработало :) 1004 *

0 голосов
/ 18 февраля 2010

Если вы напишите полную строку, все будет в порядке:

<%
Response.write("<link href=\"" + Corporation.PageStyleSheet + "\" rel=\"stylesheet\" />");
%>

P.S. Мой синтаксис может быть не совсем правильным, извините заранее.

...