为什么ASP.NET Web API只允许一个POST方法参数?

时间:2013-10-17 10:41:56

标签: asp.net asp.net-web-api http-post

我是ASP.NET Web API的新手,我发现它有一个非常烦人的限制。它只支持一个参数来发布方法。 (在此处阅读更多内容:Using jQuery to POST [FromBody] parameters to Web API

从这个链接看来,他们似乎是这样设计的。我有这种奇怪的限制对我没有任何意义。

如果有人知道为什么会这样设计,请告诉我。

2 个答案:

答案 0 :(得分:3)

这是HTTP的工作方式。 HTTP POST发送正文。作为web api,该主体代表正在发布的资源对象。

POST中的'object'可以是具有许多属性的复杂对象,因此您可以创建一个包装器对象来表示资源。它也可以是一组对象作为资源的集合。

作为旁注,如果您正在设计RESTful Web api,那么最好将单个资源或资源数组(对象)POST到表示资源集合的端点。例如,我将一名学生发布到/ api /学生,并添加该学生。

答案 1 :(得分:2)

您可以拥有许多参数,但只能有一个[FromBody] ,这是因为HTTP消息只能有一个正文。您可以根据需要将任意数量的参数映射到查询字符串上的参数。