У меня (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
из каждого вида?