0

是否需要TemplateControl.ResolveUrl()在传递给之前调用TemplateControl.LoadControl()

首选哪种方式?

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

或者也许ResolveClientUrl()

4

1 回答 1

3

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

第二种方法将被视为最佳实践,以帮助防止项目的相对结构变化。

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

于 2009-08-21T23:47:54.473 回答