我有一个asp.net网站,它位于root的子目录中。
示例:http:localhost:6464/MyWebsite
或http://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"/>
。
这有效但我正在检查是否有更优雅的方式。
更新:
那么,如何解析应用程序/虚拟目录的根目录 感谢。
答案 0 :(得分:0)
我以这种方式解决了类似问题:
在site.master的代码隐藏页面中我添加了:
protected void Page_Load(object sender, EventArgs e) {
this.Page.DataBind();
...
}
所有服务器端控件都应该具有“〜/”。 E.g:
<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>
我希望它有所帮助