質問

電話する必要がありますか TemplateControl.ResolveUrl() に渡す前に TemplateControl.LoadControl()?

どちらの方法が好ましいでしょうか?

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

または多分 ResolveClientUrl() ?

役に立ちましたか?

解決

必須ではありません。最初の方法は冗長で複雑さが増すだけなので、それを実行することはお勧めしません。チルダは、すでにアプリケーションのルートに相対していることを意味します - ResolveUrl 呼び出し元のページまたはユーザーコントロールに相対するように変更するだけです。いずれにせよ、ロードされたままになります。

2 番目の方法は、プロジェクトに対する相対的な構造変更を防ぐためのベスト プラクティスとして推奨されます。

さらに良いのは、パス文字列をリソースにするか、少なくとも定数にしてマジック文字列を取り除き、予期せぬ事態を完全に回避することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top