我有一个Blazor网络应用程序(自动),从数据库在客户端提取项目. 我已经创建了服务和控制器来获取所有有效的项,但当我try 搜索特定项时,它中断了,我收到以下错误:
crit: Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]
Unhandled exception rendering component: Response status code does not indicate success: 500 (Internal Server Error).
System.Net.Http.HttpRequestException: Response status code does not indicate success: 500 (Internal Server Error).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at System.Net.Http.Json.HttpClientJsonExtensions.<<FromJsonAsyncCore>g__Core|12_0>d`2[[System.Collections.Generic.List`1[[Design_A_Bear.Models.Item, Design_A_Bear.Models, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Text.Json.JsonSerializerOptions, System.Text.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51]].MoveNext()
at Design_A_Bear.Services.ClientItemService.GetItemsByCategory(String category) in C:\Users\User\source\repos\Design_A_Bear_2.0\Design_A_Bear.Services\ClientItemService.cs:line 56
at Design_A_Bear.Client.Pages.Items.Browse.OnInitializedAsync() in C:\Users\User\source\repos\Design_A_Bear_2.0\Design_A_Bear\Design_A_Bear.Client\Pages\Items\Browse.razor:line 49
at Microsoft.AspNetCore.Components.ComponentBase.RunInitAndSetParametersAsync()
at Microsoft.AspNetCore.Components.RenderTree.Renderer.GetErrorHandledTask(Task taskToHandle, ComponentState owningComponentState)
相关代码如下:
IItemService.CS:
个
Task<List<Item>> GetItemsByCategory(string category);
ItemService.CS:
个
public async Task<List<Item>> GetItemsByCategory(string category)
{
List<Item>items = await _db.Items.Where(item => item.Category == category).ToListAsync();
return items;
}
ClientItemService.cs
个
public async Task<List<Item>> GetItemsByCategory(string category)
{
var result = await _httpClient.GetFromJsonAsync<List<Item>>($"/api/Item/{category}");
return result;
}
ItemController.cs
个
[HttpGet("{category}")]
public async Task<ActionResult> GetItemsByCategory(string category)
{
var items = await _itemServices.GetItemsByCategory(category);
return Ok(items);
}
最新情况: 这是我收到的错误:
An unhandled exception occurred while processing the request.
AmbiguousMatchException: The request matched multiple endpoints. Matches:
Design_A_Bear.Controllers.ItemController.GetItemsByCategory (Design_A_Bear)
Design_A_Bear.Controllers.ItemController.GetItemById (Design_A_Bear)
这是因为我有两个GET函数,它们接受一个参数.我怎么才能 Select 我想要的呢?
public async Task<List<Item>> GetItemsByCategory(string category)
{
var result = await _httpClient.GetFromJsonAsync<List<Item>>($"/api/Item/{category}");
return result;
}
public async Task<Item> GetItemById(int id)
{
var result = await _httpClient.GetFromJsonAsync<Item>($"/api/Item/{id}");
return result;
}