我正在尝试使用ResolveUrl()在自定义ASP.NET用户控件的代码中设置一些路径。用户控件包含导航菜单。我正在加载主页面的页面上加载它。
当我在用户控件中调用ResolveUrl(“〜”)时,它返回“〜”而不是站点的根目录。当我在页面中调用它时,我会按预期获得根路径。我已经使用调试器并确认,ResolveUrl(“〜”)在我后面的用户控制代码中返回“〜”。
还有其他方法我应该在后面的用户控制代码中调用该函数来获取站点的根路径吗?
答案 0 :(得分:3)
我试图在控件的页面加载触发之前使用ResolveUrl。因此,该功能还没有上下文页面。
我将代码移到了页面加载功能中,现在它按预期解析了。
感谢你朝着正确的方向努力。
答案 1 :(得分:2)
答案 2 :(得分:1)
看看这个MSDN示例。 http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx。和Rick Strahl的网络日志http://www.west-wind.com/Weblog/posts/154812.aspx
答案 3 :(得分:0)
我想如果它在页面上有效但在控制中无效,我想你可以试试
this.Page.ResolveUrl("~");