Требуется ли вызывать ResolveUrl () перед LoadControl ()? - PullRequest
0 голосов
/ 22 августа 2009

Требуется ли позвонить TemplateControl.ResolveUrl() перед передачей на TemplateControl.LoadControl()?

Какой способ предпочтительнее?

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

или, может быть ResolveClientUrl()?

1 Ответ

3 голосов
/ 22 августа 2009

Это не обязательно. Я бы даже не рекомендовал делать первый метод, так как он просто избыточен и добавляет сложности. Тильда означает, что она уже связана с корнем приложения - ResolveUrl просто меняет ее на относительную к странице или пользовательскому контролю, с которого вы ее вызываете. В любом случае, он все равно будет загружен.

Второй способ предпочтителен в качестве наилучшей практики, которая поможет предотвратить относительные структурные изменения в вашем проекте.

Еще лучше было бы сделать строку пути ресурсом или, по крайней мере, константой, чтобы избавиться от магических строк и вообще избежать неожиданностей.

...