微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ASP.NET Web API正文值限制

我正在研究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

他对这种“单一价值可以来自身体”的意思是什么? API格式化程序只能从主体中解析单个类型的对象吗?你能举例说明一下吗?

解决方法

Only a single value can come from the body

假设您有这样的请求体.

{“Id”:12345,“FirstName”:“John”,“LastName”:“West”}

您希望将此JSON绑定到类似此类型的参数.

public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

动作方法可以像void Post(Employee emp).并且它不能像这样 – void Post(Employee john,Employee duplicateJohn).只有一个值可以来自身体.

and that value must represent the entirety of the body

假设你有这样的请求体.

{“Id”:12345,“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(标识符ID,名称名称)这样的操作方法,并期望将主体部分绑定到这两个参数.整体必须只绑定一个值.所以,有一个类似的

public class Employee
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

并将请求主体完整地绑定到一个值,如void Post(Employee emp)是允许的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐