#c# #blazor
#c# #blazor
Вопрос:
Я хочу получить доступ к свойствам класса без использования экземпляра класса. Мой сервис:
public async Task<MovieDataDetail> GetAllMovieInfo(string title, string lang = "ru")
{
var results = await _client.SearchMovieAsync(title, lang);
var data = results.Results.FirstOrDefault(p => p.Title == title);
return new MovieDataDetail
{
Id = data.Id,
Title = data.Title,
OriginalTitle = data.OriginalTitle,
Overview = data.Overview,
ReleaseDate = data.ReleaseDate
};
}
Он записывает данные в свойства
Я хотел бы использовать эти реквизиты на клиенте, но я не знаю, как это сделать, не создавая экземпляр класса. Я бы хотел сделать что-то подобное: <div><h1>@MovieDataDetail.Overview</h1></div>
Если я создам экземпляр MovieDataDetail
, Overview
будет null
Комментарии:
1. Учитывая, что обзор, по-видимому, поступает из базы данных, как вы собираетесь извлекать / отображать его, не запрашивая базу данных?
2. @canton7 нет, я не использую никакую базу данных
Ответ №1:
Это выглядит как простая проблема управления объектами.
Вместо создания (нового) экземпляра просто присвоите результат переменной на вашей странице:
private MovieDataDetail movieDetail = null;
...
movieDetail = await GetAllMovieInfo(...);
и в разделе разметки:
@if(movieDetail != null)
{
<div><h1>@movieDetail.Overview</h1></div>
}
Комментарии:
1. У меня другая ошибка — исключение System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта.
2. Вы заметили
@if()
? Я добавил это чуть позже.3. о, теперь это работает. Странные вещи.. большое спасибо