C# Blazor未设置新生成的值

C# Blazor未设置新生成的值,c#,razor,blazor,C#,Razor,Blazor,当我从助手类为Day对象生成新时间时,时间计数始终为0 这是我的日课 public class Day { public DateTime Date { get; set; } public List<Massage> Massages { get; set; } = new List<Massage>(); public List<DateTime> Times { get; set; } = new List<DateTime

当我从助手类为Day对象生成新时间时,时间计数始终为0

这是我的日课

public class Day
{
    public DateTime Date { get; set; }
    public List<Massage> Massages { get; set; } = new List<Massage>();
    public List<DateTime> Times { get; set; } = new List<DateTime>();     
}
公共课日
{
公共日期时间日期{get;set;}
公共列表消息{get;set;}=new List();
公共列表时间{get;set;}=new List();
}
这是我的助手类和generateTimes方法

public class Helper
{
    public Helper()
    {

    }

    public void generateTimes( Day day)
    {
        if (day.Massages?.Any() ?? false)
        {
            day.Times = new List<DateTime>();
            List<DateTime> newTimes = new List<DateTime>();
            newTimes.AddRange(new List<DateTime>
            {
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 30, 0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 9, 0, 0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 9, 30, 0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,10,0,0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,10,30,0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,11,0,0),
                new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day,11,30,0)
            });
            day.Times = newTimes;
        }
    }
}
公共类助手
{
公共助理()
{
}
公共无效生成时间(天)
{
如果(日按摩?.Any()?假)
{
day.Times=新列表();
列表新时间=新列表();
newTimes.AddRange(新列表
{
新的日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,8,0,0),
新的日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,8,30,0),
新的日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,9,0,0),
新的日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,9,30,0),
新的日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,10,0,0),
新日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,10,30,0),
新日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,11,0,0),
新日期时间(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,11,30,0)
});
天。时间=新时间;
}
}
}
这是我的index.razor,我想在这里显示日期的可用时间计数

<div class="control-section">
    <div id="wrapper" class="datepicker-section">
        <div id="datepicker-control">
            <EjsDatePicker @bind-Value="@Date1" id="datepicker" placeholder="Choose date"></EjsDatePicker>
        </div>
    </div>
</div>
<span>
    @if (Date1.HasValue)
    {
        Helper helper = new Helper();


        @if (days.Find(d => d.Date.Day == Date1.Value.Day && d.Date.Month == Date1.Value.Month && d.Date.Year == Date1.Value.Year) == null)
        {

            Day day = new Day();
            day.Date = Date1.Value;

            //Generating Times
            helper.generateTimes( day);
            days.Add(day);

            <p>@day.Date</p>

            //Needs to be 8
            <p>@day.Times.Count</p>

            foreach (DateTime t in day.Times)
            {
                <p>@t.Hour</p>
                <p>@t.Minute</p>
            }
        }
        else
        {
            <p>@days.Find(d => d.Date.Day == Date1.Value.Day && d.Date.Month == Date1.Value.Month && d.Date.Year == Date1.Value.Year).Times.Count</p>
            @foreach (DateTime t in @days.Find(d => d.Date.Day == Date1.Value.Day && d.Date.Month == Date1.Value.Month && d.Date.Year == Date1.Value.Year).Times)
            {
                <p>@t.Hour</p>
                <p>@t.Minute</p>
            }
        }
    }
</span>
@code
      {
    public DateTime? Date1 { get; set; } = DateTime.Now;
    public List<Day> days = new List<Day>();
}

@如果(Date1.HasValue)
{
Helper=newhelper();
@if(days.Find(d=>d.Date.Day==Date1.Value.Day&&d.Date.Month==Date1.Value.Month&&d.Date.Year==Date1.Value.Year==null)
{
每日=新的一天();
day.Date=Date1.Value;
//生成时间
助手生成时间(天);
天。添加(天);
@日期

//必须是8岁 @天,时间,计数

foreach(日期时间t,以天为单位,时间为单位) { @t、 时辰

@t、 分钟

} } 其他的 { @days.Find(d=>d.Date.Day==Date1.Value.Day&&d.Date.Month==Date1.Value.Month&&d.Date.Year==Date1.Value.Year)。Times.Count

@foreach(DateTime t,单位为@days.Find(d=>d.Date.Day==Date1.Value.Day&&d.Date.Month==Date1.Value.Month&&d.Date.Year==Date1.Value.Year)。次) { @t、 时辰

@t、 分钟

} } } @代码 { public DateTime?Date1{get;set;}=DateTime.Now; 公共列表天数=新列表(); }

当我在索引中使用相同的方法时,它就起作用了。razor

快速潜在问题与行“if(day.Massages?.Any()?false)”有关。这意味着您正在填充的内容将仅在集合中已有项的情况下添加项。。。不会有(从发布的代码来看,它是初始化的,但没有数据)。我怀疑您想要“if(!day.Massages.Any())”或删除if语句快速潜在问题与行“if(day.Massages?.Any()?false)”有关。这意味着您正在填充的内容将仅在集合中已有项的情况下添加项。。。不会有(从发布的代码来看,它是初始化的,但没有数据)。我怀疑您想要“if(!day.Massages.Any())”或删除if语句