在我的MVC 4应用程序的.js文件中,我使用ajax来调用控制器中的函数。
$.ajax({
type: "POST",
url: "./serverFunction",
data: JSON.stringify({ item: dataItem }),
dataType: "html",
contentType: "application/json; charset=utf-8"
});
网址是相对于当前位置设置的,我想保持这种方式。我遇到的问题是域/ app /文件夹/视图和域/ app /文件夹/视图/都是有效的位置,当最后出现/我需要回到我的网址中的另一个级别。我目前能够通过以下更改处理此问题
url: document.URL.substring(document.URL.length - 1, document.URL.length) == "/" ? "../serverFunction" : "./serverFunction"
但我想知道是否有一个更优雅的解决方案呢?
答案 0 :(得分:1)
即使URL
位于JavaScript文件中,也有使用Url.Action
的解决方法。我强烈建议你使用
在视图中声明JavaScript变量。在脚本部分中
<script type="text/javascript">
var actionUrl = '<%=Url.Action("actionname","controller")%>';
</script>
在外部文件中使用actionUrl
。