0

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

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

然后在我使用的设计页面中

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

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

当属性在 MasterPage 上时,我似乎无法让 <%#ImgPath%> 工作。我已经尝试过 <%#Master.Page.ImgPath%> .. 和许多其他变体,但我似乎无法让它工作。

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

4

2 回答 2

1

我认为这行不通:

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

因为返回一个基类,而不是母版页的特定类,这意味着如果不强制转换对象Page.Master,ImgPath 属性将不可用。Page.Master每次这样做都会变得非常乏味。

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

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

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

于 2012-04-30T03:37:32.550 回答
0

您可以使用 MasterType 指令。

http://dotnet.dzone.com/news/back-basics-%E2%80%93-using-mastertype

于 2012-04-30T03:40:42.203 回答