как ссылаться на свойство из класса в Blazor

#c# #blazor

#c# #blazor

Вопрос:

У меня есть простое приложение Blazor.

У меня есть метка в моей HTML-части страницы .Razor. В разделе @code у меня есть открытый класс с несколькими свойствами, и я пытаюсь просто отобразить значения из моего класса в метках.

Код ниже:

 <label>@How To Display EmailAddressHere</label>

<label>@How To Display Body</label>

@code {

    public class EmailItems
    {
    public string EmailAddress { get; set; }
    public string Body { get; set; }
    }

    protected override void OnInitialized()
    {

        var emailItems = new EmailItems()
            {
                Body = "testBody",
                EmailAddress= "jdoe@gmail.com",
            };
    }
}
  

Ответ №1:

Вам нужно создать поле или свойство типа EmailItems и назначить его вместо переменной.

 <label>@emailItem.EmailAddress </label>

<label>@emailItem.Body </label>

@code {

    EmailItems emailItem;

    public class EmailItems
    {
        public string EmailAddress { get; set; }
        public string Body { get; set; }
    }

    protected override void OnInitialized()
    {

            this.emailItem = new EmailItems()
            {
                Body = "testBody",
                EmailAddress= "jdoe@gmail.com",
            };
    }
}
  

Комментарии:

1. как можно использовать что-то подобное в случае, если мы фактически не присваиваем значения до тех пор, пока страница не будет отрисована. В этом случае возникает исключение Null, поскольку мы пытаемся ссылаться на элемент emailItem, но значения не были присвоены. В основном, говоря, и событие должно произойти до того, как эти значения будут присвоены

2. Вы можете сделать EmailItems emailItem = new EmailItems();

3. Вы можете отобразить сообщение «Загрузка …», когда элемент имеет значение null, а затем отобразить после заполнения значений. См. Обработка неполных асинхронных действий при рендеринге