asp.net – 表达式标记中的问题,用于绑定字符串变量

我是< link>中的绑定路径标签
<link rel="stylesheet" media="screen" href='<%= AbsRoot_Path%>UserAccountTemp/css/reset.css' />

但它像那样呈现……

<link rel="stylesheet" media="screen" href="&lt;%= ConfigurationManager.AppSettings[&quot;rootpath&quot;].ToString() %>UserAccountTemp/css/reset.css" />

它正在工作< script>标签.

这背后的原因是什么,解决方案是什么?

UPDATE

设置AbsRoot_Path

在web.config

<add key="rootpath" value="http://localhost:1259/WallProfile/"/>

并设置为AbsRoot_Path

public string AbsRoot_Path = ConfigurationManager.AppSettings["rootpath"].ToString();

解决方法

编辑:好的,我会在这里更具体.

ASP.NET处理< link>在里面< head>即使您没有在那里指定runat =“server”属性,也可以将其作为服务器端控件.所以你实际上是在设置服务器端控件的’href’属性,这就是你在那里获得如此奇怪的值的原因.因此,解决方法可能是为< link>添加id属性.并访问它服务器端:

<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> tag和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类型.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....