在Design中访问Master Page公共属性

时间:2012-04-30 02:28:08

标签: c# asp.net master-pages

我正在为web.config文件中的图像设置PATH。在每个页面上,我正在设置一个公共属性,如:

    public string ImgPath
    {
        get { return Config.CDNImages; }
    }

然后在设计页面中我使用

<img src='<%#ImgPath%>/products/<%#Eval("prodID")%>.jpg'/></a>

它可以工作,但现在我想在MasterPage上添加这个公共属性,这样我就可以在每个页面上访问ImgPath。

我似乎无法获得&lt;%#ImgPath%&gt;在MasterPage上的属性时工作。 我试过&lt;%#Master.Page.ImgPath%&gt; ..和许多其他变化,但我似乎无法让它工作。

如何使用内联请求/绑定在设计页面上的MasterPage中获取公共属性?

2 个答案:

答案 0 :(得分:1)

我认为这不会起作用:

<%#Master.Page.ImgPath%>
 or
<%#Page.Master.ImgPath%>

因为Page.Master返回基类,而不是主页的特定类,这意味着如果不转换Page.Master对象,ImgPath属性将不可用。每次这样做都会非常繁琐。

您是否考虑过这样做,而不是将属性添加到母版页?

public abstract class YourPage : Page
{
    public string ImgPath
    {
        get { return Config.CDNImages; }
    }
} 

现在更改您的网页,使其继承YourPage而不是Page,您应该可以在每个页面上访问您的方法。

答案 1 :(得分:0)