我的控制器中有這個 post 方法
[HttpPost]
public Task<AddClientAppSettingResponse> Post(AddClientAppSettingCommand mysetting)
=> Mediator.Send(mysetting);
AddClientAppSettingCommand如您所見,我的 post 方法接受一個模型:
public class AddClientAppSettingCommand : IRequest<AddClientAppSettingResponse>
{
public ClientAppSettings Setting { get; set; }
public AddClientAppSettingCommand(ClientAppSettings setting)
{
Setting = setting;
}
}
這是我的模型類:
public class ClientAppSettings : BaseEntity
{
public ClientAppSettings(string userId) : base($"ClientAppSettings/{userId}")
{
}
public bool LightTheme { get; set; }
public OrderSettings Order { get; set; }
public NotchSettings Notch { get; set; }
public int PageSize { get; set; }
public bool ApplyCommissionInPortfolio { get; set; }
public bool UseClosingPriceInPortfolioTotalValue { get; set; }
public bool ShowNotifications { get; set; } = true;
public bool NoSleep { get; set; } = true;
public bool NoBalance { get; set; } = false;
public bool DataTracker { get; set; } = false;
public bool UserStatusBarToUp { get; set; } = false;
public bool PortfolioBasedOnLastPositivePeriod { get; set; } = false;
}
public class OrderSettings
{
public long BuyQuantity { get; set; }
public long SellQuantity { get; set; }
public float Tick { get; set; }
public string TickType { get; set; }
public bool PriceFromHeadline { get; set; }
public bool OrderConfirmation { get; set; }
public bool DivideOrderToMultiple { get; set; }
}
public class NotchSettings
{
public bool Up { get; set; }
public bool Down { get; set; }
}
但是當我使用具有這些值的郵遞員呼叫我的 API 時
{
"setting":{
"LightTheme":true,
"Order":{
"BuyQuantity":"1",
"SellQuantity":"1",
"Tick":"1.0",
"TickType":"asas",
"PriceFromHeadline":true,
"OrderConfirmation":true,
"DivideOrderToMultiple":true
},
"Notch":{
"Up":true,
"Down":true
},
"PageSize":"10",
"ApplyCommissionInPortfolio":true,
"UseClosingPriceInPortfolioTotalValue":true,
"ShowNotifications":true,
"NoSleep":true,
"NoBalance":true,
"DataTracker":true,
"UserStatusBarToUp":true,
"PortfolioBasedOnLastPositivePeriod":true
}
}
我收到這個錯誤
型別“domain.Entities.ClientAppSettings”的反序列化建構式中的每個引數都必須系結到反序列化時的物件屬性或欄位。每個引數名稱必須與物件上的屬性或欄位匹配。匹配可以不區分大小寫
作為一個說明我用MediatR的CQRS,我跟著這個,但沒有奏效。我把[JsonConstructor]上
public AddClientAppSettingCommand(ClientAppSettings setting)
{
Setting = setting;
}
但它沒有用。我的變數setting為空
uj5u.com熱心網友回復:
您需要一個用于 api 輸入引數的無引數建構式
public class AddClientAppSettingCommand : IRequest<AddClientAppSettingResponse>
{
public ClientAppSettings Setting { get; set; }
public AddClientAppSettingCommand() {}
public AddClientAppSettingCommand(ClientAppSettings setting)
{
Setting = setting;
}
}
和設定相同
public class ClientAppSettings : BaseEntity
{
public ClientAppSettings(){}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394281.html
