Dam*_*les 3 asp.net-core blazor
我创建了一个示例 Blazor 项目。该脚手架有两个示例,(1) 调用网页中存在的 C# 方法 = 计数器,(2) 在网页初始化开始时调用服务器方法 = 天气表。但没有任何调用服务器方法并在单击按钮时获取结果的示例。那可能吗?
例如,我可以将这样的方法添加到“WeathrForecastService.cs”中:
public int Add(int a, int b)
{
return a + b;
}
Run Code Online (Sandbox Code Playgroud)
与“计数器”示例一样,在页面上添加一个按钮,当单击该按钮时,显示其结果:
@page "/fetchdata"
@using BlazorApp1.Data
@inject WeatherForecastService ForecastService
<h1>Weather forecast</h1>
<p>This component demonstrates fetching data from a service.</p>
@if (forecasts == null)
{
<p><em>Loading...</em></p>
}
else
{
<p>Current count: @[display the result of ForecastService.Add(1,2)]</p>
<button class="btn btn-primary" @onclick="[call ForecastService.Add(1,2)]">Click me</button>
}
@code {
WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}
Run Code Online (Sandbox Code Playgroud)
单击按钮时调用服务器方法并获取结果。那可能吗?
是的。如果您使用 Blazor 服务器端,服务器端方法将在后台通过 SignalR 调用。
与我们在 Angular/React 中的方式类似,为了显示结果,我们需要创建一个_sum字段来缓存结果,以便稍后显示/更改它:
@code {
private int _sum;
}
Run Code Online (Sandbox Code Playgroud)
并更改您的onclick如下:
<p>Current count: @this._sum</p>
<button class="btn btn-primary" @onclick="()=>this._sum= ForecastService.Add(1, 2)" >Click me</button>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |