ASP.NET WebFormのマスターページのリンクや画像が正しく動作しない現象と対処法を紹介します。
ASP.NET WebFormのマスターページの左上のサービスロゴをクリックするとトップページに戻れるようにする場合、
AタグやImgタグでリンクを作成するとコンテンツフォームがマスターページと違うディレクトリにある場合に不具合が起きます。
リンクの記述を以下にした場合。
<a href="default.aspx>back</a>
リンクの戻り先は次の通りとなり、戻り先が変わってしまいます。
コンテンツフォーム配置先 | リンク戻り先 |
/ | /default.aspx |
/sub | /sub/default.aspx |
画像の場合も同様となり、画像の記述を以下にした場合。
<img src="res/logo.png"/>
コンテンツフォームが/subディレクトリにある場合は画像が表示されません。
コンテンツフォーム配置先 | 画像参照先 |
/ | /res/logo.png |
/sub | /sub/res/logo.png |
この場合は、AタグやImgタグで記述するのではなく、HyperLinkコントロールを配置し、
リンク先(NavigateURL)を "~/default.aspx"にして、画像を(ImageURL)を "~/res/logo.png"とすると、正しく動作します。