I am binding path like that in <link> tag
<link rel="stylesheet" media="screen" href='<%= AbsRoot_Path%>UserAccountTemp/css/reset.css' />
but it render like that...
<link rel="stylesheet" media="screen" href="<%= ConfigurationManager.AppSettings["rootpath"].ToString() %>UserAccountTemp/css/reset.css" />
and it is working <script> tag.
what the reason behind this and what is the solution?
UPDATE
to set AbsRoot_Path
in web.config
<add key="rootpath" value="http://localhost:1259/WallProfile/"/>
and set to AbsRoot_Path
public string AbsRoot_Path = ConfigurationManager.AppSettings["rootpath"].ToString();
EDIT: OK, I'll be more specific here.
ASP.NET treats
<link>inside<head>as a server-side controls even if you didn't specifyrunat="server"attribute there. So you're actually setting 'href' property of a server-side control, that's why you're getting so strange values there. So the workaround could be either addingidproperty for the<link>and accessing it server side:or use a solution I provided in my initial answer:
It seems you define your
<link>tag inside a<head>tag and ASP.NET doesn't allow to use server-side constructs there. But there is an easy workaround for this: you could add<link>control programmatically (useHtmlLinkserver-side control for this):Also defining your
AbsRoot_Pathvariable asConfigurationManager.AppSettings["rootpath"].ToString()is a little bit redundant becauseConfigurationManager.AppSettings["rootpath"]is already of typestring.