html – .NET Core Blazor App:如何在页面之间传递数据?

在.NET Core Blazor应用程序中,页面之间经常需要传递数据。以下是几种传递数据的方式:

1. 使用URL参数传递数据

可以使用URL参数将数据传递到另一个页面。在原始页面上,生成一个包含参数的URL,然后在目标页面中使用参数来获取数据。

以下是使用URL参数传递数据的示例:

在原始页面上:

<a href="/target-page?data=test">Go to target page</a>

在目标页面上:

@page "/target-page"

@code {

[Parameter]

public string Data { get; set; }

protected override void OnInitialized()

{

Console.WriteLine(Data);

}

}

2. 使用属性传递数据

可以使用属性将数据传递到另一个页面。在原始页面上,生成另一个页面的实例,并将属性设置为所需的值。然后,可以在目标页面中使用属性来获取数据。

以下是使用属性传递数据的示例:

在原始页面上:

@page "/source-page"

<button @onclick="GoToTargetPage">Go to target page</button>

@code {

private void GoToTargetPage()

{

var targetPage = new TargetPage();

targetPage.Data = "test";

NavigationManager.NavigateTo(targetPage);

}

}

在目标页面上:

@page "/target-page"

[Parameter]

public string Data { get; set; }

protected override void OnInitialized()

{

Console.WriteLine(Data);

}

3. 使用服务传递数据

可以使用依赖注入的服务来传递数据。在原始页面上,注入一个服务,并在服务中存储所需的值。然后,可以在目标页面中注入相同的服务,并从服务中获取数据。

以下是使用服务传递数据的示例:

在原始页面上:

@page "/source-page"

<button @onclick="GoToTargetPage">Go to target page</button>

@code {

[Inject]

private IDataService DataService { get; set; }

private void GoToTargetPage()

{

DataService.Data = "test";

NavigationManager.NavigateTo("/target-page");

}

}

在目标页面上:

@page "/target-page"

[Inject]

private IDataService DataService { get; set; }

protected override void OnInitialized()

{

Console.WriteLine(DataService.Data);

}

使用这三种方法之一来传递数据,可以实现不同页面之间的数据共享。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。