0

我有一个 Javascript 函数,我想在其中调用 jQuery.Load() 来加载文件。如何让 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 Popup 工作从另一个文件加载内容。我的代码使用了我找到的免费 jQuery 弹出控件jQuery.bPopup.js

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)方法可以让您使用 ~/ pathing 来解析相对路径。否则,您使用VirtualPathUtility静态类。

于 2012-12-19T21:58:52.683 回答