c#
  • javascript
  • jquery
  • asp.net
  • 2011-09-14 3 views 1 likes 
    1

    私はチルダパスを持っています。上記のコードは同じようだが、私はクライアントのURL相対パスを取得するためにjavascriptでティルダパスを渡す正しい方法は何ですか?

    var path = "~/Presentation/Resources/Images/masterPage/cleanup.png"; 
        var a = '<%=Page.ResolveClientUrl(" '+path+' ") %>'; 
    
        var b = '<%=ResolveUrl("~/Presentation/Resources/Images/masterPage/cleanup.png") %>'; 
    
    alert("var a-->"+a); 
    alert("var b-->"+b); 
    

    に変換したいと思い、私はVAR aとVAR bのために取得した結果は非常に異なっています。

    var a --> ~/Presentation/Resources/Images/masterPage/cleanup.png 
    var b --> ../../Resources/Images/masterPage/cleanup.png 
    

    結果は、私はパスを格納する変数がありますが、私は正確にVAR bのような結果を得ることができませんでした。 var aのために何をすればvar bのような結果が得られますか?

    答えて

    1

    呼び出しているメソッド、ResolveClientUrlとResolveUrlは異なります。 ResolveClientUrlはあなたが現在いるページを基準にしたURLを示します。 ResolveUrlは、サイトルートを基準にしたURLを示します。より詳しい説明はhttp://www.andornot.com/blog/post/ResolveUrl-vs-ResolveClientUrl.aspx

    SO questionにもあります。

    +0

    私はResolveUrlとResolveClientUrlを試してみました。どちらも私に "../../"相対パスを返さない:( – DEN

    関連する問題