Вопрос

Обязательно ли звонить TemplateControl.ResolveUrl() прежде чем передать его TemplateControl.LoadControl()?

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top