Asp.net core 使用服务器端Blazor动态填充选择列表的问题

Asp.net core 使用服务器端Blazor动态填充选择列表的问题,asp.net-core,blazor,blazor-server-side,asp.net-core-3.0,matblazor,Asp.net Core,Blazor,Blazor Server Side,Asp.net Core 3.0,Matblazor,尝试动态填充一个选择下拉列表&每次运行它时,我都可以通过@foreach块一步一步地浏览代码,但是它似乎陷入了一个连续循环或其他什么&将完全冻结一切!挣扎,因为没有错误发生 “/api/Reps/Index”控制器单独工作很好。我甚至更新了它,只返回一个代表,看看这是否是一个问题,但没有任何区别 *注:使用MatBlazor实现材料设计 我的剃须刀页面: @inject HttpClient Http <EditForm Model="@projectParameters">

尝试动态填充一个选择下拉列表&每次运行它时,我都可以通过@foreach块一步一步地浏览代码,但是它似乎陷入了一个连续循环或其他什么&将完全冻结一切!挣扎,因为没有错误发生

“/api/Reps/Index”控制器单独工作很好。我甚至更新了它,只返回一个代表,看看这是否是一个问题,但没有任何区别

*注:使用MatBlazor实现材料设计

我的剃须刀页面:

@inject HttpClient Http

<EditForm Model="@projectParameters">
  <DataAnnotationsValidator />
  <ValidationSummary />

  <div>
    <MatSelect Label="Rep" @bind-Value="@projectParameters.Rep">
        <MatOption Value="">Select</MatOption>
        @foreach (var rep in repList)
          {
           <MatOption Value="@rep.id.ToString()">@rep.name</MatOption>
          }
    </MatSelect>
  </div>
</EditForm>

@code
{
  Project projectParameters = new Project();
  private MyRep[] repList { get; set; }

  protected override async Task OnInitAsync()
  {
    repList = await Http.GetJsonAsync<MyRep[]>
    ("/api/Reps/Index");
  }
}
@injecthttpclient Http
挑选
@foreach(应答列表中的var rep)
{
@代表姓名
}
@代码
{
项目参数=新项目();
private MyRep[]repList{get;set;}
受保护的重写异步任务OnInitAsync()
{
repList=wait Http.GetJsonAsync
(“/api/Reps/Index”);
}
}
这也是我的RepsController.cs代码:

namespace MyProject.Controllers
{
    public class RepsController : Controller
    {
        MyDataAccessLayer objrep = new MyDataAccessLayer();

        [HttpGet]
        [Route("api/Reps/Index")]
        public IEnumerable<MyRep> Index()
        {
            return objrep.GetAllReps();
        }
    }
}
名称空间MyProject.Controllers
{
公共类RepsController:控制器
{
MyDataAccessLayer objrep=新的MyDataAccessLayer();
[HttpGet]
[路线(“api/Reps/Index”)]
公共IEnumerable索引()
{
返回objrep.GetAllReps();
}
}
}

我不确定是否发生错误,因为第一次渲染将抛出,因为MyRep为null。尝试初始化MyRep或用if包装foreach以防止null?见鬼,你是对的。就这些!添加了一个if来首先检查null&瞧。你知道为什么它会对我的程序(和计算机)造成如此剧烈的影响,而不仅仅是第一次出错吗?不知道,但我会责怪异步的东西something@MisterMagoo:如何初始化repList:
private MyRep[]repList{get;set;}=new MyRep[0]。当OP试图在空值上迭代时会出现错误。@herrera,发现得很好,这就是我想说的