LoadControl() の前に ResolveUrl() を呼び出す必要がありますか?
-
19-09-2019 - |
質問
電話する必要がありますか TemplateControl.ResolveUrl()
に渡す前に TemplateControl.LoadControl()
?
どちらの方法が好ましいでしょうか?
LoadControl(ResolveUrl("~/MyControl.ascx"));
LoadControl("~/MyControl.ascx");
LoadControl("MyControl.ascx");
または多分 ResolveClientUrl()
?
解決
必須ではありません。最初の方法は冗長で複雑さが増すだけなので、それを実行することはお勧めしません。チルダは、すでにアプリケーションのルートに相対していることを意味します - ResolveUrl
呼び出し元のページまたはユーザーコントロールに相対するように変更するだけです。いずれにせよ、ロードされたままになります。
2 番目の方法は、プロジェクトに対する相対的な構造変更を防ぐためのベスト プラクティスとして推奨されます。
さらに良いのは、パス文字列をリソースにするか、少なくとも定数にしてマジック文字列を取り除き、予期せぬ事態を完全に回避することです。
所属していません StackOverflow