MAUI Blazor路由错误



我的路由在常规Blazor应用程序中运行良好,但在Blazor MAUI中则不然。

@page "/"
@page "/logitemAdd/{logItemKey?}"

我的页面对这两条路线都有响应,但在MAUI中,参数没有被传入。

如果我删除第一条路由,参数就会被传入

//////////////////////////////////////

使用NavigateTo时会出现此问题。

这是我的Index.razor页面。注意它的路线"/索引";而不是"/">

@page "/Index"
@inject NavigationManager NavMan
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<div>
<a onclick="@navto" href="">test link</a>
</div>
@code{
public void navto()
{
NavMan.NavigateTo("/fetchdata/myVariable");
}
}

这是我的FetchData.razor,注意这两条路线。

单击"索引"中的链接时,NaviateTo将触发,但参数不会传递。

如果你把"/"路由离开页面时,参数已成功传递。

@page "/"
@page "/fetchdata/{logItemKey?}"
@using MauiApp2.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
{
<table class="table">
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
</tr>
}
</tbody>
</table>
}
@code {
[Parameter]
public string logItemKey { get; set; }
private WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}

我已经做了一个样本来测试并发现带有参数的路由可以很好地工作。

剃刀中的代码:

@page "/fetchdata"
@page "/fetchdata/{logItemKey?}"
<p>@logItemKey</p>

获取参数的代码:

@code {
private WeatherForecast[] forecasts;
[Parameter]
public string logItemKey { get; set; }
protected override async Task OnInitializedAsync()
{
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
}
}

以及ui中的div:

<div>
<a href="/fetchdata/test">test link</a>
</div>

我也遇到了同样的问题,但它与从未引发的onclick事件有关。

相关内容

  • 没有找到相关文章

最新更新