JavaScript中的ASP.net MVC应用程序URL

时间:2013-10-02 17:33:13

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

您无法访问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变量。

答案 1 :(得分:2)

 var base = "@Request.Url.GetLeftPart(UriPartial.Authority)";
 var path = "@Request.ApplicationPath";
 var baseURL = base + path + "/";

Reference