-2

Can you please guide me, how to bind dynamic model when received from Swagger with this JSON data:

{
"RequestItems":[
    {
    "eventDate":"2023-02-27",
    "eventName":"string Update",
    "eventType":1601,
    "address":{
        "address":"address Updare",
        "note":"addressNote"
        }
    }
]
}

And here my request file And End Point :

public async Task<IActionResult> RequestItemAsync([FromRoute] Guid Id, [FromBody] UpdateRequestItems request)
{
    // line of code
}
public class UpdateRequestItems
{   
    public List<RequestItem> RequestItems { get; set; }
}

public class RequestItem
{
    public Guid Id { get; set; }
    public DateOnly EventDate { get; set; }    
    public string EventName { get; set; }
    public EventType EventType { get; set; }
}

public class RequestAddress : RequestItem
{
    public TripItineraryAddress? Address { get; set; }
}

public class RequestVendor : RequestItem
{
    public TripItineraryVendor? Vendor { get; set; }
}

public class RequestDescription : RequestItem
{
    public TripItineraryDescription? Description { get; set; }
}

Try some custom model binder but not accept child data.

Jackdaw
  • 7,626
  • 5
  • 15
  • 33
Amresh
  • 7
  • 5

1 Answers1

0

Try to modify you model like:

RequestItem:

public class RequestItem
    {
        public Guid Id { get; set; }
        public DateOnly EventDate { get; set; }
        public string EventName { get; set; }
        public int EventType { get; set; }
        public Adress adress { get; set; }  
    }

Adress:

 public class Adress
    {
        public string address { get; set; }
        public string note { get; set; }
    }

result: enter image description here

Qing Guo
  • 6,041
  • 1
  • 2
  • 10