【发布时间】:2013-04-21 10:32:57
【问题描述】:
我使用 JavaScript 代码调用 MVC Web API。当前路径为:
http://localhost/myApp/Administrator
但当当前路径为时失败:
http://localhost/myApp/Administrator/
我收到错误 The resource cannot be found。下面是代码:
$.getJSON("api/UserApi",
function (data) {
...
});
我不想在代码中使用绝对 URL,例如:
$.getJSON("http://localhost/myApp/api/UserApi",
function (data) {
...
});
绝对 URL 可以正常工作,但缺乏灵活性。有没有办法做下面同样的事情?
$.getJSON("~/api/UserApi",
function (data) {
...
});
ASP.NET 支持将“~”字符替换为当前应用程序的根路径,例如:
http://localhost/myApp
但是,JavaScript 文件不支持“~”字符。我如何完成同样的事情?
JavaScript 位于一个独立文件中,无法使用像 Url.Content 这样的 ASP.NET 语句。有没有更好的方法?
我找到了以下方法。有没有更好的解决方案?:
1) 将以下代码写入 .cshtml 文件中
<script type="text/javascript">
var currentDomain = '@Url.Content("~")';
</script>
2) 从 .js 文件中读取currentDomain 变量:
$.getJSON(currentDomain + "/api/UserApi",
function (data) {
...
});
【问题讨论】:
标签: javascript asp.net path relative-path