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

Dim*_*kiy 8 iis ajax jquery url-routing asp.net-mvc-3

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

"/Home/Save/"
Run Code Online (Sandbox Code Playgroud)

这在当地工作得很好.

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

"/Home/Save/"而不是"/VirtDir/Home/Save/"明显失败.

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

"/Home/Index/Home/Save".

我的JavaScript是在单独的*.js文件中,所以我无法真正写入@Url.Content它们.

谁知道这个问题有一个很好的解决方案?

Bri*_*ian 22

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

在剃刀:

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

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

var myurl = rootDir + "Home/Save/";
Run Code Online (Sandbox Code Playgroud)