РЕДАКТИРОВАТЬ: ОК, я буду здесь более конкретным.
ASP.NET рассматривает <link>
внутри <head>
как элементы управления на стороне сервера, даже если вы этого не сделалиукажите runat="server"
атрибут там.Таким образом, вы фактически устанавливаете свойство 'href' серверного элемента управления, поэтому вы получаете такие странные значения.Поэтому можно обойти это путем добавления свойства id
для <link>
и доступа к нему на стороне сервера:
<link id='lnkStylesheet' rel="stylesheet" media="screen" />
protected void Page_Init(object sender, EventArgs e)
{
HtmlLink lnkStylesheet= (HtmlLink)Page.Header.FindControl("lnkStylesheet");
lnkStylesheet.Href = AbsRoot_Path + "UserAccountTemp/css/reset.css";
}
или использовать решение, которое я предоставил в своем первоначальном ответе:
КажетсяВы определяете свой тег <link>
внутри тега <head>
, а ASP.NET не позволяет использовать там серверные конструкции.Но для этого есть простой способ: вы можете программно добавить <link>
элемент управления (для этого используйте HtmlLink
элемент управления на стороне сервера):
protected void Page_Init(object sender, EventArgs e)
{
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = AbsRoot_Path + "UserAccountTemp/css/reset.css";
myHtmlLink.Attributes.Add("rel", "stylesheet");
myHtmlLink.Attributes.Add("screen", "screen");
Page.Header.Controls.Add(myHtmlLink);
}
Также определите свой AbsRoot_Path
переменная как ConfigurationManager.AppSettings["rootpath"].ToString()
немного избыточна, потому что ConfigurationManager.AppSettings["rootpath"]
уже имеет тип string
.