ASP.NET Web API参数与模型绑定

本文介绍了ASP.NET Web API中参数绑定和模型绑定的概念。默认情况下,原始类型通过[FromUri]从URL获取,复杂类型通过[FromBody]从请求正文读取。示例展示了HttpGet和HttpPost操作如何使用不同类型的绑定。通常,HttpGet和Delete使用URI参数,而Put和Post可能使用请求主体中的模型。
摘要由CSDN通过智能技术生成

目录

背景

例子

兴趣点


ASP.NET提供了将值发送到控制器上的方法的能力。这称为绑定。绑定的两种主要类型是参数和模型。本文是关于使用这两种类型的绑定的快速回顾。

背景

ASP.NET WebAPI遵循这些默认的绑定规则:

  • 如果参数是原始类型,例如整数、字符串或布尔值,它将首先尝试使用参数绑定,而没有任何其他指令。
  • 在没有任何其他指令的情况下,复杂类型将默认从请求正文中读取值。
  • 复杂类型可以在方法参数中使用带有正确指令的参数绑定。

ASP.NET WebAPI支持两种不同的指令来指示数据应该从哪里绑定:

  • [FromUri]——该指令告诉方法可以在请求URL中找到数据。
  • [FromBody]——该指令告诉方法可以在请求正文中找到数据。

例子

下面是不同类型绑定的两个简单示例,第一个来自URI,第二个来自请求正文:

public ProductController : ApiController
{
    [HttpGet]
    [Route("Product/{id}")]
    public HttpResponseMessage GetProductById([FromUri] int productId )
    {
        // Code here for the controller method
    }
}

Request URL看起来类似于https://localhost/api/product/100

public ProductController : ApiController
{
    [HttpPost]
    [Route("Product")
    public HttpResponseMessage AddProduct([FromBody] Product newProduct )
    {
        // Code here for the controller method
    }
}

Request在使用postman的时候是这样的。

兴趣点

一般情况下,不严格来讲,用于PutPostHTTP谓词在请求的主体中使用模式,因为他们要么创建或更新资源,有时可能需要一个较大的模型,而在 URI中这个模型很笨重。

HttpGetDelete动词通常将使用URI,一般来说,它们检索或删除通常可以由URI中的id标识的资源。

https://www.codeproject.com/Tips/1268090/ASP-NET-Web-API-Parameter-vs-Model-Binding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值