首页 > 解决方案 > 具有异步服务的 ASP.NET Razor 组件

问题描述

我对 ASP.NET 还是很陌生(或者更确切地说,像几年前一样更新)。我现在创建了一个服务来从Google Firestore. 这是从云端加载数据的方法

public async Task<IEnumerable<MyDocument>> GetTempDocs()
{
    var qs = await db.Collection("temp").GetSnapshotAsync();
    return qs.Documents.Select(x => new MyDocument() { Data = x.ToDictionary(), Id = x.Id });            
}

非常简单和有效。但是现在,为了可视化我创建的数据Razor Component

@using Microsoft.AspNetCore.Components.Web;
@using MyProject.Models;
@using MyProject.Services;
@inject FireStoreService firestoreService;


<div class="card-columns">
@foreach (var document in firestoreService.GetTempDocs())
{
    <div class="card">
        <div class="card-body">
             <h5 class="card-title">@document.Data["title"]</h5>
        </div>
    </div>
    <div class="card-footer">
        <button @onclick="(_e => firestoreService.SomeOtherFunction(document))" class="btn btn-success">SomeText</button>
    </div>
}
</div>

现在的问题是,GetTempDocs()asynchronous。那么我该如何等待结果,我应该在哪里等待呢?我在另一个页面上读到等待是后端责任,但调用它是在前端(即客户端)完成的。

onclick()不相关的问题: a 中的 html 按钮中的方法Model Page(如 default Index.cshtml)和@onclicka中的方法有什么区别Razor Component

标签: c#asp.netasp.net-mvcasp.net-core

解决方案


推荐阅读