C#变量正在.aspx

时间:2016-06-07 13:04:38

标签: c# asp.net

我已经插入了一个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。

Please take a look at the attached image for better understanding.

再次更新

我找到了所有这些的答案,我在其他页面上的runat="server"标签上<Head></Head>,删除它解决了问题。无论如何,谢谢;)

1 个答案:

答案 0 :(得分:1)

您的其他页面无法在其母版页中直接引用代码隐藏。 您可以将相同的属性添加到各个页面,但随后会出现重复 虽然我不是静态类的忠实粉丝,但在这种情况下它可能是一个很好的妥协:

public static class SiteSettings
{
    public string WebInstance
    { 
        get { return ConfigurationManager.AppSettings["WebInstance"];}}
    }
}

然后在.aspx中,引用SiteSettings.WebInstance

一些开发人员将创建一个其他页面继承的基页,并在其中放置常用属性。这可以工作,但我会用它作为最后的手段。迟早你会想要基页的一些行为而不是其他行为,或者你必须对网站做一些广泛的改动,这将成为一个巨大的痛苦。