如何从索引中传输数据.在c# blazor中将razor文件转换为另一个razor文件



我有一个数据在索引。剃刀从数据库,现在我正试图从索引中获取数据。

有谁能告诉我怎么做吗

这是服务器端

最简单的方法是将数据从UI中取出并放入DI服务中。

下面是一个简单的示例。

MyDataService:

public class MyDataService
{
public string MyMessage { get; set; } = string.Empty;
private bool initialized;
public async ValueTask GetData()
{
if (!initialized)
{
// emulate a async data get from a Db
await Task.Delay(1000);
MyMessage = $"Got data at {DateTime.Now.ToLongTimeString()}";
this.initialized = true;
}
}
}

注册程序:

builder.Services.AddScoped<MyDataService>();

用于Index.razor:

@page "/"
@inject MyDataService myData
<PageTitle>Index</PageTitle>
@if (loaded)
{
<div class="p-2">
MyData : @myData.MyMessage
</div>
}
@code {
private bool loaded;
protected override async Task OnInitializedAsync()
{
await myData.GetData();
loaded = true;
}
}

Counter.razor:

@page "/counter"
@inject MyDataService myData
<PageTitle>Counter</PageTitle>
<h1>Counter</h1>
<p role="status">Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@if (loaded)
{
<div class="p-2">
MyData : @myData.MyMessage
</div>
}

@code {
private int currentCount = 0;
private bool loaded;
protected override async Task OnInitializedAsync()
{
await myData.GetData();
loaded = true;
}
private void IncrementCount()
{
currentCount++;
}
}

最新更新