【问题标题】:ASP.net MVC application URL in JavaScriptJavaScript 中的 ASP.net MVC 应用程序 URL
【发布时间】:2013-10-02 17:33:12
【问题描述】:

我在默认网站下的 IIS 上托管了一个 MVC 应用程序。所以我可以通过浏览http://localhost/appname来访问应用程序。

我还有一个 URL 重写模块,如果输入的 URL 是这样的,它会返回相同的主页 http://localhost/appname/request/*

我想在我的 index.html 文件中获取路径 url (http://localhost/appname/)。我正在使用剃刀语法。因此,如果我将网站托管在不同的路径或不同的应用名称下,我的 ajax 查询和 css 不会受到影响。

如何在 index.html 文件的 javascript 中获取 http://localhost/appname

【问题讨论】:

  • RequestContext..ApplicationPath 为 razor , window.location.hostname 为主机名

标签: asp.net asp.net-mvc razor


【解决方案1】:

您无法在 JavaScript 中访问完整的应用程序路径(即www.hostname.com/appname/),因为它不了解服务器端实现,它只是 JavaScript 的 URL。

您可以使用@Url.Content("~/...") 将应用程序路径注入到您的页面中。

<script type="text/javascript">
    var appPath = @Url.Content("~/");
</script>
<script type="text/javascript" src="@Url.Content("~/scripts/main.js")"></script>

在上面,main.js 将能够访问appPath 变量。

【讨论】:

  • 我用过它,我得到了appPath = http://hostname/appname/request/。基本上@Url.Content 将为您提供从客户端收到的任何请求服务器。它不会向您发送应用路径。
  • 我会尝试使用RequestContext.ApplicationPath。你是对的,这是一个服务器端实现。
【解决方案2】:
 var base = "@Request.Url.GetLeftPart(UriPartial.Authority)";
 var path = "@Request.ApplicationPath";
 var baseURL = base + path + "/";

Reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多