вызов действия контроллера из Vuejs, с разных точек зрения - PullRequest
0 голосов
/ 27 февраля 2019

У меня (topbar + боковая панель + нижняя панель) как компоненты Vuejs, которые являются частью макета страницы в каждом представлении, отображается.В верхнем баре файла vuejs у меня есть метод, который загружает «некоторые» данные через запрос API на один из моих контроллеров:

    beforeMount() {  
        this.loggedUserDeputies.userDeputies = [];
        console.log("calling LoadLoggedUserDeputies");
        $.get('api/Timesheets/LoadLoggedUserDeputies')
            .then(response => response as Promise<LoggedUserDeputies>)
            .then(data => {
                this.loggedUserDeputies = data;               
            });         
    },

Метод API-контроллера:

    [Route("api/[controller]/[action]")]
    public object LoadLoggedUserDeputies()
    {
        if (ActualUserContract.LoggedUserDeputies == null)
        {
            return null;
        }

        var result = ActualUserContract.LoggedUserDeputies
             .ToList()
             .Select(x => new
             {
                 userContractId = x.UserContract.Id,
                 userContractFullName = x.UserFullName,
                 userContractPersonalNumber = x.UserContract.PersonalNumber
             });
        return new { userDeputies = result };
    }

, но у меня естьпроблема в том, что URL для выборки данных всегда изменяется в зависимости от текущего представления.

(поэтому вместо вызова всегда: https://localhost:44380/api/Timesheets/LoadLoggedUserDeputies оно преобразуется в: https://localhost:44380/Activities/api/Timesheets/LoadLoggedUserDeputies или https://localhost:44380/Reports/api/Timesheets/LoadLoggedUserDeputies),Даже когда он вызывается тем же компонентом макета (который был для меня новым, поэтому извиняюсь за мое невежество).

Есть ли способ, которым я всегда могу вызывать один и тот же URL: https://example.com/api/Timesheets/LoadLoggedUserDeputies из каждого вида?

1 Ответ

0 голосов
/ 27 февраля 2019

Вы используете относительный путь для загрузки файла:

$.get('api/Timesheets/LoadLoggedUserDeputies')

Вам нужен слеш на передней части, чтобы сделать его абсолютным путем

$.get('/api/Timesheets/LoadLoggedUserDeputies')

, который будет загружатьс текущего сервера.Если вы также хотите указать сервер:

$.get('https://example.com/api/Timesheets/LoadLoggedUserDeputies')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...