是否需要在LoadControl()之前调用ResolveUrl()?

时间:2009-08-21 21:55:09

标签: .net asp.net loadcontrol resolveurl resolveclienturl

在将TemplateControl.ResolveUrl()传递给TemplateControl.LoadControl()之前是否需要致电{1}}?

首选哪种方式?

LoadControl(ResolveUrl("~/MyControl.ascx"));
LoadControl("~/MyControl.ascx");
LoadControl("MyControl.ascx");

或者ResolveClientUrl()

1 个答案:

答案 0 :(得分:3)

这不是必需的。我甚至不建议使用第一种方法,因为它只是冗余并增加了复杂性。代字号表示它已经相对于应用程序根目录 - ResolveUrl只是将其更改为相对于您正在调用它的页面或用户控件。无论哪种方式,它仍将被加载。

第二种方式是首选,以帮助防止项目的相对结构变化。

更好的方法是使路径字符串成为资源或至少是常量来摆脱魔法字符串并完全避免意外。