带有虚拟目录的IIS中的AJAX URL路由问题

时间:2011-05-25 20:53:28

标签: jquery ajax asp.net-mvc-3 iis url-routing

我有一个.NET MVC3项目,它刚刚部署到虚拟目录中的实际服务器上。我们称之为VirtDir。我的JavaScript文件都有AJAX的URL,如下所示:

"/Home/Save/"

在当地运作良好。

在实际的服务器上,第一个“/”杀死了虚拟目录,所以我得到了

"/Home/Save/"代替明显失败的"/VirtDir/Home/Save/"

如果我删除第一个“/”,那么事情会在本地中断,导致定义的URL被附加到当前页面的URL:如果您在"/Home/Index"页面上,则AJAX URL将指向< / p>

"/Home/Index/Home/Save"

我的JavaScript位于单独的* .js文件中,因此我无法真正为它们写@Url.Content

任何人都知道这个问题有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:22)

您可以在布局文件或母版页中添加一些代码,在包含JS文件之前将根目录写入JS变量。然后,您可以使用该变量在JS文件中构建路径。

在剃刀中:

<script type="text/javascript">
    var rootDir = "@Url.Content("~/")";
</script>
<script src="@Url.Content("~/Scripts/MyScript.js")" type="text/javascript"></script>

然后你可以像这样在你的文件中构建你的网址:

var myurl = rootDir + "Home/Save/";