Я использую JavaScript-код для вызова веб-API MVC. Он отлично работает, когда текущий путь:
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>
2) Прочитайте переменную currentDomain
из файла .js:
$.getJSON(currentDomain + "/api/UserApi",
function (data) {
...
});