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 addingid
property 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 (useHtmlLink
server-side control for this):Also defining your
AbsRoot_Path
variable asConfigurationManager.AppSettings["rootpath"].ToString()
is a little bit redundant becauseConfigurationManager.AppSettings["rootpath"]
is already of typestring
.