Я создал RESTapi со стандартной функциональностью CRUD. Я проверил все функции с почтальоном, и они работают без проблем.
Я использую эти функции из проекта клиента Blazor, используя Refit, и все функции работают как sharm, кроме функции Delete. Когда я запускаю это, я получаю System.AggregateException с сообщением «Произошла одна или несколько ошибок. (Неверный аргумент: источник не может быть пустым и должен иметь длину)».
Метод Delete имеет guid параметр, и все выглядит одинаково в коде относительно создания, редактирования и удаления, но удаляет трудности. Я схожу с ума здесь, кто-то может выяснить, в чем может быть проблема?
Я использую несколько компонентов (Page + List -> ListItem, и конвейер выглядит так:
- ListItem
<button class="btn btn-danger" @onclick="@(() => Delete.InvokeAsync(Item))">Delete</button>
[Parameter] public BIMObjectCategoryResponse Item { get; set; }
[Parameter] public EventCallback<BIMObjectCategoryResponse> Delete { get; set; }
Список
[Parameter] public IEnumerable<BIMObjectCategoryResponse> Items { get; set; }
[Parameter] public EventCallback<BIMObjectCategoryResponse> Delete { get; set; }
Страница
// Callback - Delete
void Delete(BIMObjectCategoryResponse item)
{
var response = bimService.DeleteBIMObjectCategoryAsync(item.BIMObjectCategoryGUID);
}
Идеи?
Еще несколько уточнений и упрощений. После тестирования нескольких ответов и рекомендаций, приведенных ниже, проблема, похоже, связана не с принципами обратных вызовов, а с конкретным c методом. Я просто создал одну простую страницу с функцией Init.
// Initialize
protected async override Task OnInitializedAsync()
{
Guid guid = Guid.Parse("1e9daac1-1a3e-4eab-8e49-45c2993aba4c");
Console.WriteLine("BeginGet");
var response1 = await bimService.GetBIMObjectCategoryAsync(guid);
Console.WriteLine(jsonService.GetString(response1.Content.Data));
Console.WriteLine("EndGet");
Console.WriteLine("BeginDelete");
var response2 = await bimService.DeleteBIMObjectCategoryAsync(guid);
Console.WriteLine(jsonService.GetString(response2.Content));
Console.WriteLine("EndDelete");
}
![enter image description here](https://i.stack.imgur.com/SWusr.png)