そのため、_./PageUrl.aspx
_ではなくPage.ResolveUrl("~/PageUrl.aspx")
を使用する理由と場所について、同僚と話し合いました。
たとえば、次のような違いはありますか?<a href='<%= Page.ResolveUrl("~/Home.aspx")%>' runat="server"> Home </a>
そして
_<a href="./Home.aspx" runat="server"> Home </a>
_?
ここ はmsdnで見つけたものですが、そこからわかる唯一の利点は、_Page.ResolveUrl
_がコンテンツのURL(画像やそのようなもの)を解決するのに優れていることです
ここ _Page.ResolveUrl
_を使用する理由の良い例を見つけることができますが、Babu Naresh Narraは_./
_の使用法について何も述べていません。
_Page.ResolveUrl
_が基本的な_./
_アプローチよりも優れている点は他にありますか?
さまざまなページで使用するユーザーコントロールを作成したとします。ユーザーコントロールの一部は、ホームページへのリンクです。
複数レベルの深さのあるページでユーザーコントロールを使用する場合: http://website/folder1/APageWithUserControlOn.aspx
次にこれ:
<a href="./Home.aspx" runat="server"> Home </a>
http://website/folder1/Home.aspx に解決されます
これはどこですか:
<a href="<%= Page.ResolveUrl("~/Home.aspx")%>" runat="server">
http://website/home.aspx に解決されます。これは、どのページでもリンクが正しいため、希望どおりの可能性が高くなります。サーバーサイドのPage.Resolveは、「〜」を使用するときにルートからのURLを解決しました。最初の例では「/Home.aspx」を使用できるかもしれませんが、仮想ディレクトリを使用する場合、これは期待どおりに機能しません。