代码之家  ›  专栏  ›  技术社区  ›  andyJ

ASP。NET MVC,包括Javascript中的ASP

  •  3
  • andyJ  · 技术社区  · 16 年前

     $.getJSON("/Postcode/GetAddressResults/" + $get("SearchPostcode").value, null, function(data) {
    

    var action = "<%=Url.Content('~/Postcode/GetAddressResults/')%>" + $get("SearchPostcode").value
            $.getJSON(action, null, function(data) {
    

    3 回复  |  直到 13 年前
        1
  •  1
  •   AnthonyWJones    16 年前

    在母版页中添加一个元标记,以保存来自主机的当前应用程序路径的值(~表示的位)。

      <meta id="meta.AppDomainAppVirtualPath"
        name="AppDomainAppVirtualPath" value="<%=HttpRuntime.AppDomainAppVirtualPath%>" />
    

    function resolveUrl(url)
    {
        if (url.charAt(0) == "~")
        {
            if (!resolveUrl.appPath)
            {
               var meta = document.getElementById('meta.AppDomainAppVirtualPath');
               resolveUrl.appPath = meta ? meta .getAttribute("content") : '/';
            }
    
            if (resolveUrl.appPath == '/')
                return url.slice(1, url.length;
            else
                return resolveUrl.appPath + url.slice(1, url.length);
        }
        else
        {
            return url;
        }
    }
    

    现在你的代码行是:-

    $.getJSON(resolveUrl("~/Postcode/GetAddressResults/") + $get("SearchPostcode").value, null, function(data) {
    
        2
  •  0
  •   David M    16 年前

        3
  •  0
  •   Peter Bucher    16 年前

    不,你不能。 您可以在视图中向javascript公开路径,但不能直接在外部javascript文件中公开。

    @大卫M 内联整个东西并不是真的有必要,你可以内联动态部分,把另一部分硬编码。

    问候,彼得