【问题标题】:how to reference a property from a class in Blazor如何从 Blazor 中的类中引用属性
【发布时间】:2020-08-28 14:51:44
【问题描述】:

我有一个简单的 Blazor 应用程序。

我的 .Razor 页面的 HTML 部分中有一个标签。在@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",
            };
    }
}

【问题讨论】:

    标签: c# blazor


    【解决方案1】:

    您需要创建一个 EmailItems 类型的字段或属性并分配它而不是 var。

    <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",
                };
        }
    }
    

    【讨论】:

    • 如果我们在页面渲染之后才真正分配值,如何使用这样的东西。在这种情况下,会出现 Null 异常,因为我们试图引用 emailItem 但尚未分配值。基本上说,事件需要在分配这些值之前发生
    • 你可以做EmailItems emailItem = new EmailItems();
    • 您可以在项目为空时显示“正在加载...”消息,然后在填充值后呈现。见Handle incomplete async actions at render
    猜你喜欢
    • 2014-08-21
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多