是否可以在Web API 2 Controller post方法中分别传递多个复杂类型参数?

问题描述 投票:2回答:1

我知道[FromBody]仅允许一种复杂类型作为参数。我只是想知道,还有其他方法吗?任何帮助或知识将不胜感激!谢谢! :)

  1. 这是我的控制器
public HttpResponseMessage Post([FromBody]  List<TranInOutDtl> tranInOutDtl, List<TranInOutDtlsub> tranDtlSub, List<TranInOutDtlsub> tranDtlSub)
  1. 这是我下面的复杂对象
        public partial class TranInOutDtl
        {
        public int Tranno { get; set; }
        public int Trannosub { get; set; }
        public string ProdTypeDesc { get; set; }
        public string BatchNo { get; set; }
        public string Itemno { get; set; }
        public string ItemDesc { get; set; }
        public decimal ScanPendQty { get; set; }
        public int TotalBoxqty { get; set; }
        public decimal Quantity { get; set; }
        public int BoxQty { get; set; }
        public bool Isdone { get; set; }
        public int PKId { get; set; }
        public int PKSubId { get; set; }
        public string PkBxDesc { get; set; }
        public int BoxSz { get; set; }
        }

        public partial class TranInOutDtlsub
        {
        public int Tranno { get; set; }
        public int Trannosub { get; set; }
        public int Trannosub1 { get; set; }
        public string RackShlvNo { get; set; }
        public string ShlvNo { get; set; }
        public int ShlvBoxQty { get; set; }
        public decimal Quantity { get; set; }
        public int BoxQty { get; set; }
        public bool Isdonesub { get; set; }
        public string RkShlvSelType { get; set; }
        public string RkShCatUId { get; set; }
        public string RackCatDesc { get; set; }
        public string RkShCatColorCode { get; set; }
        }

        public partial class TranInOutRackScan
        {
        public int Tranno { get; set; }
        public int Trannosub { get; set; }
        public int Trannosub1 { get; set; }
        public int Srno { get; set; }
        public string BarcodeNo { get; set; }
        public decimal Quantity { get; set; }
        public int BoxQty { get; set; }
        public string InOut { get; set; }
        public int PackMaster_ID { get; set; }
        public int Pack_type_ID { get; set; }
        }
c# asp.net-web-api asp.net-web-api2 webapi2
1个回答
1
投票

正如DavidG所提到的,您可以创建满足您特定需求的任何复杂类型,例如

public class TranInOutContainer 
{
    public List<TranInOutDtl> TranInOutDtl Dtl {get; set;}
    public List<TranInOutDtlsub> TranDtlSub DtlSub {get; set;} 
    ....
}

将是解决您问题的有效方法

您也可以使用dynamic类型的c,但只有在没有其他解决方案的情况下才应使用它

© www.soinside.com 2019 - 2024. All rights reserved.