我使用 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 位于一个独立文件中,不能使用 ASP.NET 语句,如Url.Content
. 有更好的方法吗?
我找到了以下方法。有没有更好的解决方案:
1) 将以下代码写入 .cshtml 文件
<script type="text/javascript">
var currentDomain = '@Url.Content("~")';
</script>
currentDomain
2)从 .js 文件中读取变量:
$.getJSON(currentDomain + "/api/UserApi",
function (data) {
...
});