我已经插入了一个web.config键,如下所示:
<add key="WebInstance" value="/testApp"/>
当我打电话给我的Site.Master
时<link rel="stylesheet" href="<%= WebInstance%>/themes/bs3/css/bootstrap.min.css" />
在我的Site.Master.cs
中private string _webInstance = ConfigurationManager.AppSettings["WebInstance"]
public string WebInstance { get { return _webInstance ; }}
Site.Master中的第一个引用非常有效。示例:
<link rel="stylesheet" href="/testApp/themes/bs3/css/bootstrap.min.css" />
但在其他页面中,它引用了完整标记。
例如,当我在浏览器功能上inspect element
时,我在<head></head>
标签上看到的是:
<link rel="stylesheet" href="<%= WebInstance %>/themes/bs3/css/bootstrap.min.css" />
我还有在ascx.cs上获取密钥的功能
为什么只是调用标签而不是获得真正的价值?
更新
SITE.MASTER和“其他”页面是两个不同的东西,WebInstance
键来自web.config
文件。
在Site.Master.cs中,我有自己的函数来调用Key,其他页面也有各自的函数来调用Key。
再次更新
我找到了所有这些的答案,我在其他页面上的runat="server"
标签上<Head></Head>
,删除它解决了问题。无论如何,谢谢;)
答案 0 :(得分:1)
您的其他页面无法在其母版页中直接引用代码隐藏。 您可以将相同的属性添加到各个页面,但随后会出现重复 虽然我不是静态类的忠实粉丝,但在这种情况下它可能是一个很好的妥协:
public static class SiteSettings
{
public string WebInstance
{
get { return ConfigurationManager.AppSettings["WebInstance"];}}
}
}
然后在.aspx中,引用SiteSettings.WebInstance
。
一些开发人员将创建一个其他页面继承的基页,并在其中放置常用属性。这可以工作,但我会用它作为最后的手段。迟早你会想要基页的一些行为而不是其他行为,或者你必须对网站做一些广泛的改动,这将成为一个巨大的痛苦。