使用服务器端Blazor动态填充选择列表

时间:2019-07-16 05:36:37

标签: asp.net-core blazor blazor-server-side asp.net-core-3.0 matblazor

尝试动态填充选择下拉列表,并且每次运行它时,我都可以在@foreach块中逐步遍历代码,但随后似乎陷入了连续循环或其他问题。会彻底冻结一切!正在努力,因为甚至没有发生错误。

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

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

我的.Razor页面:

@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");
  }
}

这也是我的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();
        }
    }
}

0 个答案:

没有答案