将多个复杂对象传递给post/put Web API方法

53

请问有人能帮我了解如何像下面展示的那样从C#控制台应用程序传递多个对象到Web API控制器吗?

using (var httpClient = new System.Net.Http.HttpClient())
{
    httpClient.BaseAddress = new Uri(ConfigurationManager.AppSettings["Url"]);
    httpClient.DefaultRequestHeaders.Accept.Clear();
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));   

    var response = httpClient.PutAsync("api/process/StartProcessiong", objectA, objectB);
}

我的 Web API 方法如下:

public void StartProcessiong([FromBody]Content content, [FromBody]Config config)
{

}

这可能会对你有所帮助 https://stackoverflow.com/questions/40632551/how-to-pass-class-of-list-object-in-restful-web-api - Ahmed Elbendary
12个回答

0
创建一个组合对象
 public class CollectiveObject<X, Y>
{
    public X FirstObj;

    public Y SecondObj;
}

使用任意两个你想要发送的对象来初始化一个复合对象。

 CollectiveObject<myobject1, myobject2> collectiveobj =
                   new CollectiveObject<myobject1, myobject2>();
            collectiveobj.FirstObj = myobj1;
            collectiveobj.SecondObj = myobj2;

进行序列化操作

   var req = JSONHelper.JsonSerializer`<CollectiveObject<myobject1, `myobject2>>(collectiveobj);`

`

你的 API 必须像这样

    [Route("Add")]


public List<APIAvailibilityDetails> Add([FromBody]CollectiveObject<myobject1, myobject2> collectiveobj)
    { //to do}

0

你可以使用你的对象创建元组。

public IActionResult Index(int id,int dateId,CultureType cultureType) 
{
var tourbyid = _tourService.GetById(id, cultureType);
var tourbydate = _tourService.GetByIdDate(dateId, cultureType);

            
            return Ok(Tuple.Create(tourbydate , tourbyid));
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接