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 に答える