gpt4 book ai didi

ASP.NET Web API 正文值限制

转载 作者:行者123 更新时间:2023-12-05 01:07:48 24 4
gpt4 key购买 nike

我正在研究 ASP.NET Web API,但是在关于来自请求正文的复杂类型的解释中,作者让我感到困惑:

PROFESSIONAL ASP.NET MVC 4 : 第 11 章 - ASP.NET Web API

"[..] complex types (everything else) are taken from the body. There is an additional restriction as well: Only a single value can come from the body, and that value must represent the entirety of the body. [...]"

Brad Wilson



他的这个 是什么意思? “单一值(value)可以来自 body ” ? API 格式化程序只能解析一个 对象类型 从 body ?你能举例说明这一点吗?

最佳答案

Only a single value can come from the body



假设您有这样的请求正文。
{"Id":12345, "FirstName":"John", "LastName":"West"}
您希望将此 JSON 绑定(bind)到此类类型的参数。
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

Action 方法可以像 void Post(Employee emp) .不可能是这样的—— void Post(Employee john, Employee duplicateJohn) .只有一个值可以来自正文。

and that value must represent the entirety of the body



假设您有相同的请求正文,如下所示。
{"Id":12345, "FirstName":"John", "LastName":"West"}
你有两个这样的 DTO。
public class Identifier
{
public int Id { get; set; }
}

public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}

你不能有像 void Post(Identifier id, Name name) 这样的操作方法。并期望主体部分绑定(bind)到这两个参数。整个正文必须仅绑定(bind)到 一个 值(value)。所以,有一个像
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}

并将整个请求正文绑定(bind)到一个值,如 void Post(Employee emp)只允许。

关于ASP.NET Web API 正文值限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18128785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com