在设计中访问母版页公共属性

本文关键字:属性 母版页 访问 | 更新日期: 2023-09-27 18:32:50

我正在为web.config文件中的图像设置路径。在每个页面上,我都设置了一个公共属性,如下所示:

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

然后在设计页面中我使用

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

它可以工作,但现在我想在母版页上添加此公共属性,以便我可以在每个页面上访问 ImgPath。

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

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

在设计中访问母版页公共属性

我认为这行不通:

<%#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,并且您应该可以在每个页面上访问您的方法。

您可以使用 MasterType 指令。

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