#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, а затем отобразить после заполнения значений. См. Обработка неполных асинхронных действий при рендеринге