2

我有一个 asp.net 网站,它位于根目录的子目录中。

示例:http:localhost:6464/MyWebsitehttp://www.myDomain.com/MySite

当我使用 ASP.Net Image 按钮并将其 ImageUrl 属性设置为"~/images/myimage.png"时,它不会解析为,http:localhost:6464/MyWebsite/images/myimage.png而是解析为 http:localhost:6464/images/myimage.png,并且我收到错误 200(找不到资源)。

我在某处读到,对于服务器控件,我必须使用“~”。

我目前使用的一种解决方案是,在 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 回答