次のように、マスターページでAppSettingsを使用してasp:ImageButtonのImageUrlを表示しようとしています。
View.Master:
....
<asp:ImageButton ID="aspShowHideButton" ImageUrl='<%# System.Configuration.ConfigurationManager.AppSettings("HomeDirectory").ToString()%>images/arrowUpButton.gif' runat="server" />
残念ながら、これをブラウザでプルアップすると、レンダリングされるコードは次のようになります。
<input type="image" name="ctl00$ctl00$aspContentMain$aspShowHideButton" id="aspContentMain_aspShowHideButton" onmouseover="ShowHideButtonMouseOver()" onmouseout="ShowHideButtonMouseOut()" src="../%3C%25#%20System.Configuration.ConfigurationManager.AppSettings(%22HomeDirectory%22).ToString()%25%3Eimages/arrowUpButton.gif" />
つまり、ImageUrlを文字通り取得していますが、キーの値を取得する必要があります。
...
<appSettings>
....
<add key="HomeDirectory" value="/" />
....
「ToString()」関数を削除して、System.Configuration ....ステートメントの前にある「#」と「$」を試しました。また、次を使用して、これをPage_Load関数で機能させることを試みました。
Protected Sub Page_Load(....)
If Not IsNothing(Master.FindControl("aspShowHideButton")) Then
Dim ShowHideButton As ImageButton = Master.FindControl("aspShowHideButton")
ShowHideButton.ImageUrl = System.Configuration.ConfigurationManager.AppSettings("HomeDirectory") + "images/arrowUpButton.gif"
End If
しかし、それもうまくいかなかったようです。探していたコントロール(aspShowHideButtonなど)が見つからなかったためだと思います。
基本的に、web.configファイルにキーと値のペアを入れて画像の場所を変更できるようにしたいのですが、マスターページのImageButton:ImageUrlでこのキーと値のペアを使用できるようにしたいのですが、これはかなり人気のあることのようです。どんなアドバイス、方向性もありがたいです!
ありがとう!