我正在開發一個Blazor WASM網路應用,該應用可獲得客戶訂單的ETA,但我的GetFromJsonAsync()有正確數量的物件(客戶),但它們都是空物件。
資料來自 excel 電子表格,然后被映射為物件(客戶、訂單、專案),其關系是客戶有一個訂單串列,而訂單有一個專案串列。每個客戶都被添加到客戶類中的一個靜態客戶串列中。到此為止,一切都在正常運行(我創建了一個程式來測驗,所有的資料都在它該去的地方)。
在這里,我創建了一個客戶庫,并運行了客戶的靜態串列,將每個客戶推送到客戶庫中。
public static void AddCustomerRepository(this IServiceCollection services)
{
Workbook workbook = new Workbook();
workbook.InitWorkbook();
workbook.MapOrdersFromWorkbook()。
var customerRepository = new MemoryRepository<Customer>()。
foreach (Customer customer in Customer.Customers) {
customerRepository.Add(customer)。
}
services.AddSingleton<IRepository<Customer>>(customerRepository)。
}
AddCustomerRepository在Web應用程式的啟動時運行。這是.razor檔案中的JsonAsync,它在json中得到了正確的物件數量(814),但沒有資料,所以是814個空物件。
private Customer[] customer。
protected async override任務OnInitializedAsync()
{
customer = await Http.GetFromJsonAsync<Customer[]>("api/OrderStatus"/span>)。
StateHasChanged()。
}
這里是API控制器:
[Route("api/[controller]")/span>]
[ApiController]
public class OrderStatusController : ControllerBase
{
private readonly IRepository< Customer> _customerRepository;
public OrderStatusController(IRepository< Customer> customerRepository)
{
_customerRepository = customerRepository;
}
[HttpGet]
public IEnumerable<Customer> Get()
{
return _customerRepository.GetAll()
.OrderBy(customer => customer.number)。
}
}
什么原因會導致它得到正確的物件數量,但物件中沒有資料?這是我第一次使用Blazor WASM,也是我第一次使用.NET,我絕對是咬牙切齒地開始了一個更大的專案,但我現在已經在這個專案中走得很遠了,我不想讓它報廢。
uj5u.com熱心網友回復:
是什么原因導致它獲得了正確的物件數量,但物件中沒有資料呢?
很可能是屬性名稱不匹配。
客戶有2個類,
客戶有2個類。
比較一下它們。很明顯,它們不是 "Json兼容 "的。
更實用的方法是在共享專案中擁有一個Customer類。看看你是否能讓它發揮作用。
......到客戶類中的一個靜態客戶串列。
......。
把它移到其他地方。
如果你確實需要兩個不同的客戶類(這是有可能的),那么請改變你的 API。將 Server.Customer 轉換為 Shared.Customer 并回傳它。你可以使用 AutoMapper。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331778.html
標籤:
上一篇:FluentValidationIRuleBuilderOptions擴展方法--只在值存在的情況下運行regex驗證器
