当我打开页面与id链接我在浏览器中有错误.我有一个假设,以这种方式,它是指某种端点,但我不明白我如何才能使它,使我可以从链接的ID
我有页面UpdateWalletType.razor
我想通过这种方式从链接中获取ID
@page "/update-wallet-type/{walletTypeId}"
@code {
private UpdateWalletTypeByIdDto _newWalletType;
private WalletTypeDto existingWalletTypeDto = new WalletTypeDto();
protected override async Task OnInitializedAsync()
{
var walletTypeId = NavigationManager.Uri.Split('/').Last();
existingWalletTypeDto = await HttpClient.GetFromJsonAsync<WalletTypeDto>($"getWalletTypeById/{walletTypeId}");
}
}
字符串
我在构建时没有任何错误,但当我打开page /update-wallet-type/id时,我在浏览器控制台中出现此错误
“Endava.TechCourse.BankApp.Client.Pages.WalletTypes.UpdateWalletType”没有与名称“walletTypeId”匹配的属性。System.InvalidOperationException:类型“Endava.TechCourse.BankApp.Client.Pages.WalletTypes.UpdateWalletType”的对象没有与名称“walletTypeId”匹配的属性。
解释我做错了什么以及如何解决?
1条答案
按热度按时间hs1ihplo1#
您遇到的错误是由于UpdateWalletType组件没有名为walletTypeId的属性,而您试图在OnInitializedAsync方法中访问它。要解决此问题,您可以将名为walletTypeId的公共属性添加到UpdateWalletType组件,并使用该属性获取数据。以下是如何修改组件的示例:
csharp
字符串
现在,当您导航到/update-wallet-type/id页面时,您需要将id作为参数传递。如果您使用的是RouteView或NavLink,则可以像这样传递参数:
HTML
型
确保将123替换为您想要获取的实际ID。这样,WalletTypeId属性将在组件初始化时设置,并且您不会遇到上述错误。