【问题标题】:Is it possible to pass more than one complex type parameter separately in the web API 2 Controller post method?是否可以在 web API 2 Controller post 方法中分别传递多个复杂类型参数?
【发布时间】:2020-06-16 10:39:31
【问题描述】:

我知道 [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】:

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

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

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

您也可以使用dynamic type ofc,但只有在不存在其他解决方案时才应使用它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 2015-08-06
    • 2013-10-18
    相关资源
    最近更新 更多