2013-11-01 55 views
0

在我的MVC 4应用程序中的.js文件中,我使用ajax来调用我的控制器中的函数。帐户/位置

$.ajax({ 
      type: "POST", 
      url: "./serverFunction", 
      data: JSON.stringify({ item: dataItem }), 
      dataType: "html", 
      contentType: "application/json; charset=utf-8" 
     }); 

正在设置相对于当前位置的网址,我想保留它。我遇到的问题是,域/应用程序/文件夹/视图和域/应用程序/文件夹/视图/都是有效的位置,当/出现在最后我需要回到我的网址中的另一个级别。我目前能够处理此与以下更改

url: document.URL.substring(document.URL.length - 1, document.URL.length) == "/" ? "../serverFunction" : "./serverFunction" 

但我想知道是否有一个更优雅的解决方案呢?

+0

我们一直使用@ Url.Action作为ajax调用中的url。会有这样的工作吗? –

+0

是的,我也这样做了,我不在这种情况下的原因是因为我最好喜欢将它保存在单独的JavaScript文件中,而不是在我看来。 – aw04

+0

即使它在js文件中,也有使用Url.Action的解决方法。我强烈建议你使用它。如果你想这样的事情,我肯定会帮你 – Satpal

回答

1

即使URL在JavaScript文件中,解决方法是使用Url.Action。我会强烈建议你使用它。

在视图中声明一个JavaScript变量。在脚本部分为

<script type="text/javascript"> 
    var actionUrl = '<%=Url.Action("actionname","controller")%>'; 
</script> 

并在外部文件中使用actionUrl