jQuery ASP.NET MVC - $ .post()到不同环境中的不同URL路径

时间:2009-10-06 17:59:49

标签: jquery asp.net-mvc visual-studio

考虑到$.post()需要在Visual Studio Dev环境中与部署的IIS生产或测试环境稍微不同的URL结构。

部署到测试服务器时,应用程序在IIS中的虚拟目录下运行。 URL将类似于:

部署

网址:http://myServer/myApplication/Area/Controller/Action

使用jQuery的.post(),我需要提供字符串:

 $.post( "/myApplication/myArea/myController/myMethod"

开发

在Visual Studio环境中

卡西尼网址为:http://localhost:123/Area/Controller/Action

使用jQuery的.post(),我需要提供字符串:

 $.post( "/myArea/myController/myMethod"

问题: 如何使用相同的代码行,无论其部署的环境如何?

2 个答案:

答案 0 :(得分:3)

我这样做的方法是通过RouteUrl方法生成网址,如下所示:

var url = "<%= Url.RouteUrl(new { area="myArea", controller = "controller", action = "actionmethod" }) %>";
$.post(url ...

只要您的路线设置正确,就会生成相应的网址。

编辑现在可以使用未经修改的区域。

答案 1 :(得分:1)

另一个(更简单的?)实现是设置应用程序根目录的js变量:

<script type="text/javascript" >
    var globalAppPath = '<%= Request.ApplicationPath %>';
</script>

然后您可以将其附加到任何网址请求的开头。

$.post( globalAppPath + "/myArea/myController/myMethod"

无论您将网络应用放在何处,它都能正常运行。