2

ルートのサブディレクトリ内にあるasp.net Webサイトがあります。

例:http:localhost:6464/MyWebsite またはhttp://www.myDomain.com/MySite

ASP.Net イメージ ボタンを使用してその ImageUrl プロパティを に設定すると、代わりに に解決さ "~/images/myimage.png"れず、エラー 200 (リソースが見つかりません) が発生します。http:localhost:6464/MyWebsite/images/myimage.pnghttp:localhost:6464/images/myimage.png

サーバーコントロールには「〜」を使用する必要があることをどこかで読みました。

私が現在使用している1つの解決策は、webconfigでBaseURLのエントリを作成し、それを次のように設定することです

http:localhost:6464/MyWebsite/

として使用し<asp:ImageButton ID="imgButton2" ImageURL="<%=Context.Items["baseURL"]%>images/myimage.png" runat="server"/>ます。

これは機能しますが、よりエレガントな方法があるかどうかを確認しています。

更新しました:

では、 アプリケーション/仮想ディレクトリのルートに解決する方法を教えて ください。

4

1 に答える 1

0

私はこの方法で同様の問題を解決しました:

私が追加したsite.masterのコードビハインドページに:

protected void Page_Load(object sender, EventArgs e) {
    this.Page.DataBind();
    ...
}

すべてのサーバー側のコントロールには、本来あるべき「〜/」があります。例えば:

<asp:Image ID="ImageSpace" runat="server" ImageUrl="~/images/spacer.gif" />
<asp:HyperLink ID="LinkMenuXXX" runat="server" NavigateUrl="~/xxx.aspx"/>

必要なクライアント側のコントロールには、次のモデルがあります(例)。

<script type="text/javascript" src='<%# ResolveUrl("~/")%>js/cookie/jquery.cookie.js'></script>

お役に立てば幸いです

于 2012-06-15T14:23:56.277 に答える