【问题标题】:Why does ASP.NET Web API allow only one parameter for POST method?为什么 ASP.NET Web API 只允许 POST 方法的一个参数?
【发布时间】:2013-10-17 10:41:55
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这就是 HTTP 的工作方式。 HTTP POST 发送一个正文。作为一个 web api,这个 body 代表了正在发布的资源对象。

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

    附带说明,如果您正在设计 RESTful Web api,那么最好将单个资源或资源(对象)数组发布到代表资源集合的端点。例如,我将一个学生发布到 /api/students,它会添加该学生。

    【讨论】:

    • 我们不能在 web api 中创建 public string Post([FromBody]string value, int someNo) 和 jQuery data:{value:searializedForm, someNo:24} 吗?
    • {value:form, someNo:24} 是具有两个属性的 single 对象的 JSON 表示; value 和 someNo。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-30
      • 2018-02-04
      • 1970-01-01
      • 2011-09-15
      • 2018-05-27
      • 2014-03-01
      • 2023-03-11
      • 1970-01-01
      • 2018-05-09
      相关资源
      最近更新 更多