我试图使用ResolveUrl()在自定义ASP.NET用户控件的代码背后设置一些路径。用户控件包含导航菜单。我在加载母版页的页面上加载它。ResolveURL无法在用户控件中解析
当我在我的用户控件中调用ResolveUrl(“〜”)时,它返回“〜”而不是站点的根。当我在页面中调用它时,我得到了预期的根路径。我已经介绍了调试器并确认,ResolveUrl(“〜”)在我的用户控制代码后面返回“〜”。
有没有其他方法我应该在我的用户控制代码中调用该函数以获取站点的根路径?
我试图使用ResolveUrl()在自定义ASP.NET用户控件的代码背后设置一些路径。用户控件包含导航菜单。我在加载母版页的页面上加载它。ResolveURL无法在用户控件中解析
当我在我的用户控件中调用ResolveUrl(“〜”)时,它返回“〜”而不是站点的根。当我在页面中调用它时,我得到了预期的根路径。我已经介绍了调试器并确认,ResolveUrl(“〜”)在我的用户控制代码后面返回“〜”。
有没有其他方法我应该在我的用户控制代码中调用该函数以获取站点的根路径?
上述wonde的评论使我的答案 -
我在控件的页面加载之前尝试使用ResolveUrl。因此,该功能尚无上下文页面。
我将我的代码移入页面加载函数,现在它按预期方式解决。
感谢您在正确的方向微调。
看看这个MSDN示例。 http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx。和Rick施特拉尔的Web日志http://www.west-wind.com/Weblog/posts/154812.aspx
我不确定里克斯特拉尔的帖子是如何应用的。我在页面上加载我的控件。 Control.ResolveUrl可用,但不能解决。 – 2010-03-31 15:38:54
我想,如果它工作在页面上,但不是我想控制你可以尝试
this.Page.ResolveUrl("~");
这可能是问题的一部分:控制页属性在运行时为空。 – 2010-03-31 15:47:21
您是否在使用代码加载此控件? – BritishDeveloper 2010-03-31 15:59:06
你可以发布代码如何使用它? – wonde 2010-03-31 15:44:13