Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 01.09.2019
Сообщений: 11
1

Общие данные для всех методов контроллера

13.10.2022, 15:15. Показов 502. Ответов 1

Author24 — интернет-сервис помощи студентам
Привет, у меня есть мастер страница, в которой необходимо заполнить сайдбар, чтобы он всегда имел одинаковое заполнение на протяжении одной сессии. Я заполняю его данными которые получаю от стороннего api. Подскажите, пожалуйста, как правильнее всего в моем случае хранить ответ от этого api и передавать его в sidebar, где правильно вызывать метод который отправляет запрос и тп? У меня проблема в том что мне приходится в каждом методе контроллера вызывать метод запроса api, затем передавать эти данные в представление, хотелось бы иметь общий viewbag для всех методов контроллера и вызывать метод запроса один раз за сессию; или доставать ответ запроса из кэша. И еще правильно ли вызывать статический метод напрямую из razorpage?

Запрос к Api и формирование модели ответа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 public class QuotesApiRequest{
        public static async Task<ApiQuoteData> Quote()
        {
            var client = new HttpClient();
            var request = new HttpRequestMessage
            {
                Method = HttpMethod.Get,
                RequestUri = new Uri(""),
                Headers =
                {
                    { "X-RapidAPI-Key", "*" },
                    { "X-RapidAPI-Host", "*" },
                }
            };
 
            using (var response = await client.SendAsync(request))
            {
                response.EnsureSuccessStatusCode();
                var data = JObject.Parse(await response.Content.ReadAsStringAsync());
                return new ApiQuoteData()
                {
                    Quote = data["quote"].Value<string>(),
                    Сharacter = data["character"].Value<string>(),
                    Show = data["show"].Value<string>()
                };
            }
        }
Модель данных для передачи в представление:
C#
1
2
3
4
5
6
public class ApiQuoteData
    {
        public string Сharacter { get; set; }
        public string Quote { get; set; }
        public string Show { get; set; }
    }
Методы контроллера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class HomeController : Controller
       {
        private readonly IBaseContentServices<RateContent> _rateService;
        private readonly IBaseContentServices<RememberContent> _rememberService;
        
        public HomeController(IBaseContentServices<RateContent> rate, IBaseContentServices<RememberContent> remember)
        {
            _rateService = rate;
            _rememberService = remember;
        }
 
        public IActionResult Index()
        {
            
            return View(QuotesApiRequest.Quote()); //как этого избежать?
        }
 
        public IActionResult NewRate()
       {
            return View(QuotesApiRequest.Quote())
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.10.2022, 15:15
Ответы с готовыми решениями:

Общие данные для 2х контроллеров
Здравствуйте. В общем вот код думаю Вы поймете что я пытаюсь сделать. var adv; function...

Общие данные для 2х таблиц
Доброго времени. Помогите вот с таким вопросом. В одной БД есть 2 таблицы: Хочется провернуть...

Регистры общие для всех программ?
Я, конечно, обычно всё понимаю, но сейчас я ничего не понимаю... То есть, работает себе такая...

Общие поля для всех классов
Скажите, пожалуйста, как можно сделать поля общими для всех классов? Т.е. я имею ввиду, вынести все...

1
389 / 254 / 66
Регистрация: 12.04.2020
Сообщений: 1,329
13.10.2022, 17:25 2
SignalR
https://metanit.com/sharp/aspnet5/30.1.php
1
13.10.2022, 17:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2022, 17:25
Помогаю со студенческими работами здесь

Общие данные для всего решения
Не знал как ещё лучше назвать... Но в общем. Есть проект, в нём много-много классов. В разных...

Общие данные для экземпляров классов
Доброго времени суток. Маленький вопросик. Есть описание класса. Экземпляры данного класса должны...

Общие настройки для всех локальных сайтов
Для каждого сайта надо создавать свои настройки (как на примере ниже). Возможно создать настройки,...

Общие переменные / объекты для всех форм
Подскажите каким образом можно хранить несколько переменных, либо объектов так, что бы к ним был...

Найти элементы, общие для всех множеств
Дано n множеств, набор элементов с которых можно создать множества записаные в масиве С. Найти...

найти общие делители для всех элементов
Здравствуйте. Я программу написал для нахождения делителя в двух целых чисел, а мне препод говорит,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru