目录

背景

例子

兴趣点


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

ASP.NET Web API参数与模型绑定相关推荐

  1. ASP.NET Web API Model-ModelBinder

    ASP.NET Web API Model-ModelBinder 前言 本篇中会为大家介绍在ASP.NET Web API中ModelBinder的绑定原理以及涉及到的一些对象模型,还有简单的Mod ...

  2. ASP.NET Web API中的参数绑定总结

    ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...

  3. .NET Core WEB API中接口参数的模型绑定的理解

    在.NET Core WEB API中参数的模型绑定方式有以下表格中的几种: 微软官方文档说明地址:https://docs.microsoft.com/zh-cn/aspnet/core/web-a ...

  4. ASP.NET Web API 特性

    ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...

  5. ASP.net Web API综合示例

    目录 概述 功能介绍 程序结构 服务器端介绍 客户端介绍 "契约" Web API设计规则 并行写入冲突与时间戳 身份验证详解 Web API验证规则 客户端MVVM简介 Web. ...

  6. ASP.NET Web API 简介

    本周早些时候,我写过一篇关于 ASP. NET MVC 4 测试版的博文.ASP. NET MVC 4 是一个重大的更新,它带来了一堆出色的新功能.我最兴奋的改进之一是为创建"Web ApI ...

  7. ASP.NET Core:从ASP.NET Web API迁移的多层数据服务应用程序

    目录 介绍 设置和运行示例应用程序 类库项目 依赖注入 访问应用程序设置 实体框架核心相关更改 主键标识插入问题 数据上下文和连接字符串 自定义存储库(Repositories) LINQ表达式翻新( ...

  8. 使用ASP.NET Web API构建Restful API

    目录 介绍 这种方法有什么好处? Restful约定 构建API 测试API 一点困惑: 最佳实践: 数据传输对象(DTO) Automapper IHttpActionResult 使用Web AP ...

  9. ASP NET Web API 2框架揭秘

    ASP.NET Web API2框架揭秘(.NET领域再现力作顶级专家精讲微软全新轻量级通信平台) 蒋金楠 著   ISBN 978-7-121-23536-8 2014年7月出版 定价:108.00 ...

最新文章

  1. 用S60操作系统SDK开发NOKIA手机应用程序(4)- 界面层框架及一些特性
  2. python壁纸4k_【python日常学习】爬取4K桌面壁纸
  3. android 读取json数据(遍历JSONObject和JSONArray)
  4. PHP中添加HTML代码的三种方法(printEND)
  5. python获得命令行参数的方法
  6. 1_boostrap概述
  7. 0基础可以学Web前端吗?如何快速掌握前端开发技能?
  8. Mybatis-plus实现动态表名查询
  9. linux命令笔记之ls
  10. 100页ppt讲清楚云原生
  11. IDEA类注释模板设置
  12. lg5.6不用计算机怎么算,lg换算(lg如何计算)
  13. AttributeError: module ‘dask‘ has no attribute ‘delayed‘问题
  14. 斯坦福大学开发PETE装置吸收60%的太阳能
  15. 使用极狐GitLab CI/CD部署应用到Kubernetes集群的方案
  16. python yaml dump_使用Python处理yaml格式的数据简单到爆!
  17. CentOS 7下ngrok服务器搭建
  18. bzoj 4455: [Zjoi2016]小星星
  19. 支付业务与技术架构学习总结(12)——支付风控相关知识小结
  20. 心理账户:一个重要的影响你财富的因素

热门文章

  1. php返回成功信息msg_使用PHP实现的服务端socket
  2. python123手机版math库-python学习笔记---math,random,operator(三)
  3. easyui datagrid 获得共多少条记录_聊城市优化简化获得电力流程做法在全省供电系统推广...
  4. 若某计算机字长为16位,题目来源于王道论坛 某计算机字长为16位,主存地址空间...
  5. php中ajax用法,thinkphp中使用ajax
  6. android 多媒体文件信息,Android如何获取多媒体文件信息
  7. python装饰器怎么调用_Python学习22-外部程序的调用装饰器
  8. 呼叫 :邓伦粉丝!手机桌面壁纸来喽
  9. 设计灵感|怎么设计渐变海报更有趣味性?
  10. 这样的家居选购界面让你忍不住剁手的冲动!