您当前的位置: 首页 >  .net

寒冰屋

暂无认证

  • 3浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

寒冰屋 发布时间:2021-09-16 21:37:49 ,浏览量:3

目录

背景

例子

兴趣点

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的时候是这样的。

兴趣点

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

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

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

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0490s