C# 接受任何JSon格式到WabApi(无模型)

C# 接受任何JSon格式到WabApi(无模型),c#,asp.net-core-webapi,C#,Asp.net Core Webapi,通常,在编写WebApi时,传入的Json将具有一致的结构,因此我会将其直接映射到以下形式的模型: [Post] public async Task<HttpResponseMessage> myWebApiMethod([FromBody] myModel Request) [Post] 公共异步任务myWebApiMethod([FromBody]myModel请求) 这将是好的和工作 现在我需要为Json输入编写代码,因为这里没有通用的结构,所以我不能针对“myModel”

通常,在编写WebApi时,传入的Json将具有一致的结构,因此我会将其直接映射到以下形式的模型:

[Post]
public async Task<HttpResponseMessage> myWebApiMethod([FromBody] myModel Request)
[Post]
公共异步任务myWebApiMethod([FromBody]myModel请求)
这将是好的和工作

现在我需要为Json输入编写代码,因为这里没有通用的结构,所以我不能针对“myModel”发表文章

我想如果我做了以下事情:

[Post]
 public async Task<HttpResponseMessage> myWebApiMethod([FromBody] string Request)
[Post]
公共异步任务myWebApiMethod([FromBody]字符串请求)
将完成完成Json的工作,但当我使用Swagger时,请求是空的。我还尝试声明为
HttpRequestMessage
,但它似乎也是空的


有人能告诉我哪里出了问题吗。

您是否尝试过在API方法定义中使用泛型?我在异步任务中只使用一个基本模型,该模型具有所有API调用都具有的公共属性,但这不是必需的

[Post]
public async Task<HttpResponseMessage> myWebApiMethod([FromBody] TReq request) 
where TResp : ResponseRptBase, new()
[Post]
公共异步任务myWebApiMethod([FromBody]TReq请求)
其中TResp:ResponseRptBase,new()

您可以使用object作为参数来绑定任何JSON值。在C#中,对象是其他所有类的基类

[HttpPost]
public async Task<IActionMethord> MyActionMethod([FromBody] object anymodel)
{
    return Ok("Success");
}
[HttpPost]
公共异步任务MyActionMethod([FromBody]对象anymodel)
{
返回Ok(“成功”);
}

谢谢,我不知道为什么我没有尝试这个,但这个已经做到了。我甚至不能使用泛型,因为我感兴趣的数据可以被包装在任何东西中,任何级别。