如何获取jQuery ajax url前缀来解析控制器操作方法?

时间:2015-08-04 07:38:20

标签: javascript jquery ajax asp.net-mvc

我确定已经多次询问过这个问题,但我遇到的问题的一个例子是asked about here.

基本上,如果我对/Controller/Action进行了ajax调用,如果我使用localhost/Controller/Action的本地开发服务器,则可以正常工作。

如果我发布到UAT,则网址需要更多信息。它现在是server/application/Controller/action,这显然打破了我的ajax电话。

<%: Url.Action("MyAction") %>解决了这个问题,但在单独的javascript文件的上下文中并不存在。

目前,我有一个javascript变量&#39; urlPrefix&#39;在我的app.js文件中,每当我在本地调试或发布到不同的服务器时,我必须在"""applicationName"之间进行更改。

解决这个问题的最简单方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用:

@Url.Content("~")

解决应用程序的根路径,因此无需在部署之间进行更改。

实现此目的的一种方法是将以下内容添加到_layouts中的<head>

<script type="text/javascript">
    var rootPath = '@Url.Content("~")';  // includes trailing /
</script>

(根据需要使用您的命名空间)

然后您可以生成以下操作:

var url = rootPath + 'controller/action/' + id