0

jQuery.Load()を呼び出してファイルをロードするJavascript関数があります。ASP.Netにローカルサーバー名を入力させて、相対パスを指定するにはどうすればよいですか?

その理由は、「http://www.mydomain.com/」などのベースを提供できるためですが、ローカルでテストできるようにし、すべてのビルドで公開する必要がないようにしたいと考えています。ローカルファイルをロードしたいだけです。

私の最初の考えは「/MyFolder/MyPage.aspx」だけでしたが、それは機能しませんでした。次に、「〜/ MyFolder / MyPage.aspx」について考えましたが、それも機能しませんでした。

付加するのは、ある種のASP.Netディレクティブである必要があると思いますが、何がわからないだけです。

実際の使用法と何が機能したかを示すコードをいくつか提供したいと思いました。

<head runat="server">
   <script type="text/javascript">
        // <![CDATA[
         function DoPopupSignin()
        {
            var urlLoad = "http://" + window.location.host + '/Candiates/Login.aspx';

            // Triggering bPopup when click event is fired
            $('#popupSigninMaster').bPopup({
                //modalClose: false,
                //opacity: 0.6,
                //positionStyle: 'fixed', //'fixed' or 'absolute'
                content: 'iframe', //'iframe' or 'ajax'
                contentContainer: '.content',
                loadUrl: urlLoad, //Uses jQuery.load()
        });
        }
        // ]]> 
    </script>
</head>

jQueryポップアップを機能させて別のファイルからコンテンツをロードしようとしています。私のコードは、jQuery.bPopup.jsで見つけた無料のjQueryポップアップコントロールを使用しています。

4

3 に答える 3

1

これは繰り返し発生する痛みですが、私は次のようなものを使用します。

public static Uri ToAbsoluteUri(this string path)
{
  Uri uri;
  if (Uri.TryCreate(path, UriKind.Absolute, out uri)) return uri;

  var serverUrl = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
  var serverUri = new Uri(serverUrl);
  return new Uri(serverUri, path);
}
于 2012-12-19T21:55:54.993 に答える
1

JavaScriptでは、クエリを準備するときに、を使用できますwindow.location.host

var path = window.location.host + '/relative/path/file.ext';
$.load(path);
于 2012-12-19T22:28:23.527 に答える
0

.NETのコントロール/フォームには、ResolveUrl(string)〜/パスを使用して相対パスを解決できるメソッドがあります。それ以外の場合は、VirtualPathUtility静的クラスを使用します。

于 2012-12-19T21:58:52.683 に答える